Go back to the main page

All data is from FanGraphs. I have no affiliation with FanGraphs, but please consider contributing to their website if you found this project informative.

Positional Scarcity is determined by ATC WAR Projections from 3-31-2022.


Hitters

Players that have an NA for Model_Score did not play in the MLB in 2021 and have a negative or zero Position Rank. The hittting model had a R-Squared of 0.91.


Hitters by Position

My non-normalized model scores for a player are Model_Score.

Overall

Name Team Position ADP WAR Model_Score WAR_Rank Hitting_Rank Pos_Scarcity
Trea Turner LAD SS 1.3 5.6 8.09 5 6 0.96
José Ramírez CLE 3B 3.1 5.9 7.89 3 11 0.94
Juan Soto WSN OF 3.8 7.5 7.81 1 13 0.92
Bo Bichette TOR SS 4.6 4.7 8.26 12 3 0.89
Vladimir Guerrero Jr. TOR IF 5.0 5.6 8.31 6 1 0.88
Bryce Harper PHI OF 8.6 5.3 8.30 8 2 0.79
Shohei Ohtani LAA DH 8.9 4.0 7.93 33 10 0.73
Ronald Acuña Jr. ATL OF 12.0 5.1 7.04 10 30 0.75
Kyle Tucker HOU OF 12.4 4.6 7.78 16 15 0.71
Mike Trout LAA OF 13.0 6.5 7.35 2 23 0.94
Rafael Devers BOS 3B 14.2 4.8 8.02 11 7 0.84
Mookie Betts LAD OF 15.3 5.8 7.44 4 19 0.88
Luis Robert CHW OF 16.1 4.6 8.11 17 5 0.85
Ozzie Albies ATL 2B 17.8 4.1 6.97 31 33 0.88
Freddie Freeman LAD 1B 18.4 5.1 7.94 9 9 0.86
Manny Machado SDP 3B 22.7 4.6 7.37 18 22 0.79
Yordan Alvarez HOU DH 25.9 4.1 6.69 32 41 0.86
Teoscar Hernández TOR OF 27.5 2.2 7.86 112 12 0.40
Tim Anderson CHW SS 30.2 3.2 7.40 55 21 0.58
Salvador Perez KCR C 32.1 3.7 6.39 40 54 0.82
Starling Marte NYM OF 33.0 2.7 6.71 72 39 0.50
Whit Merrifield KCR OF,Oth 33.1 2.3 5.72 100 75 0.42
Cedric Mullins BAL OF 33.2 3.2 7.80 52 14 0.66
Trevor Story BOS SS 34.8 4.2 6.84 30 35 0.68
Aaron Judge NYY OF 36.4 5.3 7.28 7 25 0.84
Matt Olson ATL 1B 36.7 4.2 7.31 29 24 0.81
Marcus Semien TEX IF 39.0 4.6 8.24 19 4 0.85
Pete Alonso NYM 1B 45.3 3.5 7.17 44 28 0.76
Byron Buxton MIN OF 45.6 4.6 7.45 15 18 0.81
Xander Bogaerts BOS SS 45.7 4.5 7.02 23 31 0.82
Tyler O'Neill STL OF 47.2 2.8 7.22 68 26 0.64
Paul Goldschmidt STL 1B 47.5 3.5 7.73 43 16 0.72
Fernando Tatis Jr. SDP SS 47.7 3.4 4.45 45 139 0.63
J.T. Realmuto PHI C 49.3 3.8 6.08 35 64 0.86
Austin Riley ATL 3B 51.8 3.1 6.70 56 40 0.46
Will Smith LAD C 53.4 4.7 5.59 14 78 0.95
Francisco Lindor NYM SS 53.9 4.2 5.99 27 66 0.72
Adalberto Mondesi KCR SS 57.1 2.0 4.90 119 117 0.33
George Springer TOR OF 57.5 4.2 7.20 28 27 0.67
Wander Franco TBR SS 58.8 4.5 6.40 22 53 0.78
Nick Castellanos PHI OF 59.5 2.4 7.96 90 8 0.48
Javier Báez DET SS 62.4 2.8 6.81 67 37 0.53
Eloy Jiménez CHW OF 65.4 2.2 4.78 103 120 0.45
Randy Arozarena TBR OF 66.1 2.2 6.38 111 56 0.34
Nolan Arenado STL 3B 69.5 3.7 6.37 39 57 0.66
Jose Altuve HOU 2B 74.0 3.8 7.41 37 20 0.81
Kris Bryant COL OF,Oth 74.2 2.3 6.71 96 38 0.36
Brandon Lowe TBR 2B 76.9 4.4 7.01 24 32 0.92
Jorge Polanco MIN IF 77.8 3.1 7.50 58 17 0.56
Corey Seager TEX SS 78.2 4.5 6.61 21 43 0.75
Jazz Chisholm Jr. MIA IF 78.4 1.8 5.82 136 71 0.28
Ketel Marte ARI IF 78.4 3.7 6.52 38 47 0.65
José Abreu CHW 1B 79.0 2.1 6.83 116 36 0.46
Bobby Witt Jr. KCR SS 84.4 2.4 NA 87 -6 0.42
Alex Bregman HOU 3B 88.4 4.5 4.67 20 130 0.74
J.D. Martinez BOS OF 88.5 2.0 6.35 122 58 0.40
Tommy Edman STL 2B 91.2 2.3 5.20 99 96 0.54
Jonathan India CIN 2B 91.7 3.8 6.95 36 34 0.84
Daulton Varsho ARI C,Oth 92.8 2.2 4.33 102 143 0.37
Bryan Reynolds PIT OF 92.9 4.3 7.16 26 29 0.77
Giancarlo Stanton NYY OF 95.8 2.3 5.45 94 82 0.51
Christian Yelich MIL OF 97.8 2.9 4.85 63 118 0.59
Carlos Correa MIN SS 98.7 4.7 6.47 13 50 0.92
Yasmani Grandal CHW C 102.2 4.0 5.19 34 99 0.90
Cody Bellinger LAD OF 104.8 3.1 3.44 57 196 0.61
Mitch Haniger SEA OF 108.5 2.5 6.64 84 42 0.50
Willson Contreras CHC C 109.6 2.7 4.71 73 127 0.75
Kyle Schwarber PHI OF 110.8 2.7 6.42 71 52 0.61
Anthony Rendon LAA 3B 111.1 4.3 2.92 25 227 0.70
Jesse Winker SEA OF 116.2 3.3 6.48 48 49 0.74
Jared Walsh LAA 1B 119.2 2.2 6.54 106 46 0.52
Dansby Swanson ATL SS 120.5 2.7 6.49 70 48 0.49
Ryan Mountcastle BAL OF,Oth 120.7 1.6 6.14 164 63 0.26
Franmil Reyes CLE OF 121.8 1.9 6.18 130 60 0.32
Rhys Hoskins PHI OF,Oth 122.9 3.0 6.30 62 59 0.64
C.J. Cron COL 1B 123.2 1.7 6.04 147 65 0.32
DJ LeMahieu NYY IF 123.3 2.3 4.02 93 157 0.38
Willy Adames MIL SS 123.7 3.3 6.14 51 62 0.60
Max Muncy LAD IF 126.5 3.2 5.92 54 68 0.68
Jake Cronenworth SDP 2B 127.9 3.4 5.86 46 70 0.74
Myles Straw CLE OF 128.4 2.3 3.88 98 163 0.39
Josh Bell WSN 1B 129.3 1.9 5.86 133 69 0.44
Tyler Stephenson CIN C 137.4 2.9 4.18 65 149 0.78
Chris Taylor LAD OF,Oth 141.6 2.2 5.32 101 90 0.37
Joey Votto CIN 1B 142.1 1.9 6.54 132 45 0.41
Lourdes Gurriel Jr. TOR OF 144.1 1.3 5.59 195 77 0.23
Jarred Kelenic SEA OF 144.8 1.4 3.86 186 166 0.25
Ke'Bryan Hayes PIT 3B 145.1 3.3 4.12 50 153 0.53
Keibert Ruiz WSN C 145.1 2.2 2.91 108 229 0.65
Trent Grisham SDP OF 146.8 3.1 5.13 59 103 0.63
Austin Meadows TBR OF 149.0 1.5 5.32 168 89 0.25
Justin Turner LAD 3B 151.0 3.0 5.79 61 72 0.43
Akil Baddoo DET OF 156.3 1.6 5.02 158 111 0.29
Ty France SEA 1B 157.7 2.4 5.12 91 104 0.57
Yoán Moncada CHW 3B 158.1 3.4 5.09 47 108 0.59
Ryan McMahon COL IF 158.2 2.1 5.47 118 81 0.32
Gleyber Torres NYY IF 158.6 2.5 4.02 79 158 0.45
Mitch Garver TEX C 161.0 2.4 3.89 89 162 0.70
Hunter Renfroe MIL OF 161.3 1.7 5.94 150 67 0.31
Nelson Cruz WSN OF 167.6 1.4 5.75 188 73 0.16
Adolis García TEX OF 167.8 1.2 5.41 201 83 0.20
Dylan Carlson STL OF 168.0 2.5 5.20 78 97 0.43
Brendan Rodgers COL IF 168.8 1.6 5.10 160 106 0.23
Marcell Ozuna ATL OF 169.2 2.2 2.99 109 221 0.47
Alex Verdugo BOS OF 170.0 2.4 5.41 86 84 0.41
Avisaíl García MIA OF 171.1 2.3 6.39 92 55 0.44
Amed Rosario CLE SS 172.6 1.9 5.06 125 110 0.32
Matt Chapman TOR 3B 174.5 3.6 4.71 41 126 0.63
Joey Gallo NYY OF 178.7 3.5 5.72 42 74 0.64
Eddie Rosario ATL OF 180.0 0.9 4.70 248 129 0.14
Alex Kirilloff MIN OF,Oth 180.3 1.6 4.39 159 140 0.24
Josh Donaldson NYY 3B 182.8 3.3 4.59 49 134 0.56
Anthony Rizzo NYY 1B 187.4 2.1 5.48 114 80 0.49
Luis Urías MIL IF 190.2 2.5 5.27 81 91 0.41
Andrew Benintendi KCR OF 192.2 1.9 4.99 126 113 0.38
Robbie Grossman DET OF 192.2 1.7 4.76 155 123 0.29
Jorge Soler MIA OF 192.3 1.6 4.94 162 115 0.25
Kolten Wong MIL 2B 194.7 2.5 5.59 80 79 0.63
Eduardo Escobar NYM IF 202.3 1.9 5.59 129 76 0.30
Christian Vázquez BOS C 202.4 1.7 2.94 149 226 0.45
Eugenio Suárez SEA 3B 204.3 2.2 4.26 104 147 0.34
Jean Segura PHI IF 205.1 2.3 5.39 95 85 0.40
Trey Mancini BAL OF,Oth 208.7 1.4 4.78 191 121 0.21
Yuli Gurriel HOU 1B 209.5 1.4 4.74 192 124 0.19
Adley Rutschman BAL C 211.8 2.1 NA 113 -2 0.60
Oneil Cruz 0 SS 212.2 1.8 NA 142 -46 0.29
Adam Duvall ATL OF 214.6 1.7 5.02 143 112 0.27
Jonathan Schoop DET IF 215.4 1.7 5.24 151 94 0.37
Ian Happ CHC OF 219.1 2.1 5.25 115 93 0.35
Michael Conforto 0 OF 220.6 2.5 3.77 83 173 0.52
AJ Pollock LAD OF 220.9 1.8 5.20 134 95 0.33
Jo Adell LAA OF 221.0 0.6 4.36 296 141 0.04
Brandon Crawford SFG SS 222.5 2.7 6.46 69 51 0.51
Bobby Dalbec BOS 1B 223.3 1.7 4.92 146 116 0.35
Travis d'Arnaud ATL C 225.6 1.4 2.45 190 273 0.39
Enrique Hernández BOS OF,Oth 225.8 2.8 5.10 66 105 0.53
Elias Díaz COL C 226.5 1.3 3.27 194 204 0.35
Alejandro Kirk TOR C 226.8 1.8 2.71 135 251 0.49
Brandon Belt SFG 1B 233.8 2.5 6.14 77 61 0.61
Jesús Sánchez MIA OF 234.0 2.2 5.19 107 100 0.36
Luke Voit SDP 1B 236.8 1.3 3.82 196 169 0.17
Charlie Blackmon COL OF 237.3 0.6 4.84 294 119 0.06
Harrison Bader STL OF 239.4 2.9 4.65 64 132 0.55
Frank Schwindel CHC 1B 239.6 0.8 6.59 262 44 0.10
Gary Sánchez MIN C 242.4 1.1 2.95 221 223 0.24
Jonathan Villar CHC IF 242.5 1.2 4.05 204 155 0.13
Jeimer Candelario DET 3B 243.0 3.2 5.09 53 109 0.49
Josh Rojas ARI OF,Oth 246.8 1.5 4.36 172 142 0.27
Austin Hays BAL OF 247.4 1.7 5.34 145 87 0.28
Sean Murphy OAK C 248.3 2.5 3.07 85 218 0.72
Julio Rodríguez SEA OF 250.5 2.6 NA 74 -33 0.60
Ramón Laureano OAK OF 250.7 2.6 5.13 75 102 0.48
Nathaniel Lowe TEX 1B 251.1 1.8 5.16 139 101 0.39
Mike Zunino TBR C 251.6 2.0 3.96 124 159 0.58
Michael Brantley HOU OF 252.3 2.0 4.25 123 148 0.39
Nicky Lopez KCR IF 254.1 1.8 4.50 141 136 0.26
Omar Narváez MIL C 254.9 1.7 2.57 153 263 0.47
Tommy Pham CIN OF 257.9 1.7 4.16 156 151 0.34
Andrew Vaughn CHW OF 263.5 1.2 4.05 202 156 0.21
Riley Greene DET OF 267.3 1.7 NA 154 -48 0.34
Miguel Sanó MIN IF 277.3 0.8 5.19 267 98 0.08
Joey Bart SFG C 277.8 0.9 NA 253 -27 0.21
Carson Kelly ARI C 281.3 1.9 2.69 128 254 0.53
Mark Canha NYM OF 282.7 1.7 5.38 152 86 0.35
Gavin Lux LAD IF 283.6 1.5 3.11 170 215 0.19
Lane Thomas WSN OF 285.4 1.1 3.55 226 188 0.16
Mike Yastrzemski SFG OF 291.1 2.2 5.33 110 88 0.38
Andrés Giménez CLE IF 291.8 1.7 3.20 144 212 0.24
Isiah Kiner-Falefa NYY IF 292.0 1.6 4.08 161 154 0.21
Wil Myers SDP OF 294.5 1.1 4.66 229 131 0.18
Max Kepler MIN OF 295.3 2.5 5.26 82 92 0.45
Raimel Tapia TOR OF 297.2 0.3 3.61 366 183 0.02
Max Stassi LAA C 300.6 1.8 3.13 138 214 0.51
Jesús Aguilar MIA 1B 304.3 1.1 3.87 223 165 0.14
Anthony Santander BAL OF 305.1 1.3 4.15 193 152 0.21
Eric Haase DET C 313.9 0.7 3.15 277 213 0.12
Jeff McNeil NYM OF,Oth 314.1 1.9 3.56 131 187 0.38
Gio Urshela MIN 3B 320.0 1.4 3.48 184 192 0.14
Garrett Hampson COL OF,Oth 322.9 0.3 2.72 353 248 0.01
Yadier Molina STL C 324.2 1.2 2.77 216 240 0.27
Cavan Biggio TOR 2B 325.7 1.4 2.79 180 239 0.20
Andrew McCutchen MIL OF 327.4 0.9 4.70 243 128 0.12
Alec Bohm PHI 3B 328.8 1.4 3.33 178 201 0.19
Brandon Nimmo NYM OF 331.0 3.0 4.57 60 135 0.58
Connor Joe COL OF,Oth 345.9 0.7 3.25 276 205 0.07
Ha-Seong Kim SDP IF 348.4 1.5 2.84 171 232 0.20
Randal Grichuk COL OF 349.8 0.6 4.30 305 145 0.05
Rowdy Tellez MIL 1B 355.5 0.8 3.02 269 220 0.12
Nick Madrigal CHC 2B 358.8 1.8 3.61 140 184 0.41
Rafael Ortega CHC OF 363.8 0.9 4.27 257 146 0.11
Abraham Toro SEA IF 364.9 1.4 2.75 177 244 0.16
Tyler Naquin CIN OF 366.3 0.7 5.10 289 107 0.09
Patrick Wisdom CHC 3B 369.7 1.3 4.78 197 122 0.13
Luis Arraez MIN IF 372.3 1.5 3.71 174 176 0.22
LaMonte Wade Jr. SFG OF 373.7 1.0 4.98 236 114 0.13
Austin Nola SDP C,Oth 379.5 1.4 1.98 179 299 0.21
James McCann NYM C 382.9 1.4 2.23 185 284 0.37
Mike Moustakas CIN IF 383.4 0.9 2.47 255 270 0.10
Nick Senzel CIN OF 390.4 1.0 2.54 237 267 0.15
Josh Harrison CHW 2B 397.7 1.2 3.70 207 178 0.15
Danny Jansen TOR C 400.1 2.0 3.39 121 197 0.55
César Hernández WSN 2B 414.5 1.7 4.49 148 137 0.37
Adam Frazier SEA OF,Oth 415.1 2.0 4.73 120 125 0.41
Manuel Margot TBR OF 418.2 1.1 3.65 227 181 0.16
Vidal Bruján 0 OF,Oth 422.0 0.8 NA 271 -58 0.10
Joey Wendle MIA IF 426.3 1.4 4.46 187 138 0.17
David Fletcher LAA 2B 430.3 1.4 3.85 181 167 0.21
Brandon Marsh LAA OF 432.3 1.1 2.70 217 252 0.19
Keston Hiura MIL 2B 432.5 0.2 1.77 393 312 0.01
Kyle Lewis SEA OF 439.2 1.2 2.65 209 256 0.21
Jacob Stallings MIA C 447.4 2.2 2.19 105 287 0.67
Jeremy Peña HOU SS 451.0 1.8 NA 137 -26 0.25
Jorge Mateo BAL OF,Oth 455.6 0.5 2.76 317 242 0.04
Luis Torrens SEA C 455.6 0.7 2.24 281 283 0.08
Dominic Smith NYM OF,Oth 458.7 0.5 2.51 315 269 0.04
Yoshi Tsutsugo PIT OF,Oth 458.9 0.3 2.69 377 253 0.02
Tony Kemp OAK OF,Oth 461.7 1.6 4.18 165 150 0.28
Hunter Dozier KCR OF,Oth 462.3 0.6 3.34 295 200 0.05
Jorge Alfaro SDP C 464.6 0.2 1.97 389 300 0.03
Yan Gomes CHC C 465.9 1.5 2.47 176 272 0.42
MJ Melendez KCR C 466.1 0.5 NA 323 -43 0.06
Willie Calhoun TEX OF 470.0 0.2 2.73 408 247 0.00
Josh Lowe TBR OF 472.9 0.3 NA 359 -31 0.00
Darin Ruf SFG OF,Oth 478.1 0.9 3.83 246 168 0.13
J.P. Crawford SEA SS 478.9 2.4 3.88 88 164 0.44
Wilmer Flores SFG 2B 479.1 1.3 3.67 200 179 0.16
Evan Longoria SFG 3B 480.2 1.4 3.94 183 161 0.20
Lorenzo Cain MIL OF 480.7 1.5 3.79 173 171 0.26
Victor Robles WSN OF 484.0 1.0 2.53 240 268 0.16
Yandy Díaz TBR IF 484.0 1.6 3.44 166 195 0.26
Eric Hosmer SDP 1B 484.9 0.4 3.70 327 177 0.02
Tucker Barnhart DET C 486.8 1.3 1.90 199 304 0.33
Joc Pederson SFG OF 491.3 0.9 3.81 252 170 0.11
Miguel Rojas MIA SS 492.7 2.3 4.32 97 144 0.38
Ryan Jeffers MIN C 492.9 1.6 2.57 163 264 0.43
Sam Hilliard COL OF 495.5 0.4 3.78 338 172 0.02
Pavin Smith ARI OF,Oth 497.3 0.7 3.53 283 190 0.06
Paul DeJong STL SS 498.0 2.1 3.77 117 174 0.35
Clint Frazier CHC OF 499.5 0.3 1.76 350 315 0.01
Bryson Stott PHI SS 501.8 1.0 NA 233 -8 0.08
Seth Brown OAK OF 507.5 0.7 4.64 285 133 0.08
Nick Solak TEX 2B 508.6 0.6 2.60 303 259 0.08
Brian Anderson MIA OF,Oth 510.8 1.9 3.23 127 207 0.28
Francisco Mejía TBR C 511.4 1.2 2.10 203 291 0.31
Bobby Bradley CLE 1B 511.6 0.5 3.54 309 189 0.03
Chas McCormick HOU OF 511.8 1.1 3.22 218 209 0.20
Jarren Duran 0 OF 512.4 0.4 1.92 331 303 0.03
Bradley Zimmer CLE OF 516.3 0.7 2.98 272 222 0.07
Christian Walker ARI 1B 518.5 0.7 3.22 275 208 0.08
Rougned Odor BAL 2B 518.5 0.6 2.86 306 230 0.09
Jose Barrero CIN SS 518.7 1.2 1.61 205 325 0.11
Tyler Wade LAA IF 519.7 0.3 1.74 373 317 0.03
Edmundo Sosa STL IF 520.2 1.4 2.83 182 234 0.16
Nico Hoerner CHC IF 523.5 1.4 2.64 189 257 0.15
J.D. Davis NYM OF,Oth 524.0 0.9 2.30 250 280 0.09
Carlos Santana KCR 1B 524.8 0.7 3.25 274 206 0.09
David Peralta ARI OF 525.8 1.1 3.57 219 185 0.18
Didi Gregorius PHI SS 526.4 0.9 2.84 247 233 0.06
Aaron Hicks NYY OF 527.0 1.6 1.93 157 301 0.27
Gavin Sheets CHW OF 527.5 0.8 3.66 263 180 0.09
Dylan Moore SEA OF,Oth 527.8 0.5 1.57 316 330 0.05
Kyle Farmer CIN SS 528.8 1.1 3.31 225 202 0.10
Pedro Severino MIL C 532.5 0.9 1.59 256 326 0.20
Garrett Cooper MIA OF,Oth 532.8 1.1 3.94 220 160 0.16
Michael A. Taylor KCR OF 533.0 1.2 3.35 212 198 0.21
Robinson Canó NYM 2B 533.8 0.3 NA 367 -49 0.03
Kole Calhoun TEX OF 534.0 1.1 2.71 224 250 0.17
CJ Abrams SDP SS 534.7 0.3 NA 349 -10 0.02
Kevin Smith OAK 3B 535.0 1.0 NA 234 -34 0.12
Jake Fraley CIN OF 537.7 0.8 2.81 264 236 0.10
José Iglesias COL SS 537.8 1.2 3.52 206 191 0.14
Tyrone Taylor MIL OF 538.7 1.0 3.04 239 219 0.15
Ramón Urías BAL IF 539.1 1.5 3.35 175 199 0.18
Steven Kwan CLE OF 542.4 0.7 NA 287 -54 0.09
Brad Miller TEX IF 544.0 1.5 3.61 169 182 0.17
Kyle Higashioka NYY C 544.1 1.0 1.71 235 319 0.23
Tom Murphy SEA C 545.2 1.2 1.51 214 333 0.30
Jurickson Profar SDP OF,Oth 549.6 0.3 2.73 360 246 0.02
Leury García CHW OF 550.7 0.6 2.85 300 231 0.07
Miguel Cabrera DET DH 550.7 -0.4 2.74 529 245 0.00
Bryan De La Cruz 0 OF 551.7 0.7 2.04 273 295 0.07
Seth Beer ARI 1B 553.5 0.3 NA 369 -53 0.01
Jonah Heim TEX C 553.7 0.9 1.24 254 347 0.19
Kyle Isbel KCR OF 555.4 0.6 2.55 298 265 0.03
Roberto Pérez PIT C 555.5 1.3 2.22 198 286 0.34
Andy Ibáñez TEX 2B 559.2 1.5 2.75 167 243 0.28
Anthony Alford PIT OF 564.0 0.0 2.68 459 255 -0.02
Carter Kieboom WSN 3B 564.7 0.8 1.67 260 322 0.09
Tommy La Stella SFG 2B 565.3 1.2 2.94 215 225 0.14
Cristian Pache OAK OF 567.8 0.8 1.36 261 340 0.10
Justin Upton LAA OF 568.0 0.2 2.72 391 249 0.00
Martín Maldonado HOU C 568.5 1.2 2.03 211 296 0.26
Elvis Andrus OAK SS 568.8 0.9 2.79 249 237 0.06
Santiago Espinal TOR 3B 570.5 0.8 2.55 270 266 0.07
Alek Thomas ARI OF 572.3 0.9 NA 242 -3 0.13
Trevor Larnach MIN OF 573.0 0.2 1.93 405 302 0.00
Luis García WSN 2B 573.8 0.7 2.59 280 260 0.09
Niko Goodrum HOU SS 574.0 0.7 2.26 282 282 0.05
Cal Raleigh SEA C 574.1 0.8 0.54 259 417 0.15
Chad Pinder OAK OF 574.5 0.5 2.92 311 228 0.03
Willi Castro DET IF 574.6 0.3 1.03 374 363 0.01
Matt Vierling PHI OF,Oth 575.2 0.6 2.37 302 275 0.05
Manny Piña ATL C 576.2 1.2 1.83 210 308 0.28
Corey Dickerson STL OF 578.0 0.1 2.47 415 271 -0.01
Edward Olivares KCR OF 578.0 0.3 1.18 352 352 0.00
Lars Nootbaar STL OF 578.1 0.2 2.32 395 279 -0.01
Austin Slater SFG OF 578.3 1.0 2.82 231 235 0.14
Jose Siri HOU OF 578.9 0.4 NA 335 -30 0.01
Colin Moran CIN IF 579.3 -0.1 2.79 504 238 -0.01
Aledmys Díaz HOU IF 580.0 0.9 2.14 241 290 0.07
Michael Chavis PIT IF 580.6 0.0 2.63 483 258 -0.01
Ji-Man Choi TBR 1B 580.7 0.7 3.21 278 211 0.07
Jon Berti MIA OF,Oth 581.0 0.4 1.11 334 358 0.03
Ben Gamel PIT OF 581.3 0.9 3.45 244 194 0.12
Jace Peterson MIL OF,Oth 583.0 0.3 1.68 356 321 0.01
Leody Taveras 0 OF 583.8 0.6 1.10 299 360 0.06
Kevin Plawecki BOS C 584.0 0.7 1.13 279 357 0.13
Josh Naylor CLE OF 584.5 0.5 2.76 318 241 0.03
Harold Ramirez TBR OF 584.7 0.1 1.29 428 342 -0.01
Austin Hedges CLE C 586.2 0.5 1.80 308 310 0.08
Victor Caratini SDP C 586.3 0.7 1.04 290 361 0.11
Matt Duffy LAA 3B 587.0 0.6 2.03 301 297 0.06
Jackie Bradley Jr. BOS OF 587.3 0.2 1.70 387 320 0.00
Odúbel Herrera PHI OF 587.5 1.0 3.46 238 193 0.14
Daniel Vogelbach PIT 1B 587.6 0.5 2.16 312 289 0.04
Maikel Franco WSN 3B 587.7 0.0 1.00 480 368 0.00
Cole Tucker PIT OF,Oth 588.0 0.4 1.86 324 306 0.03
Jed Lowrie OAK IF 588.3 0.4 2.58 332 261 0.04
Nick Gordon MIN OF 588.3 0.4 1.28 337 345 0.01
Alcides Escobar WSN SS 588.5 0.2 3.57 379 186 0.01
Nick Ahmed ARI SS 588.6 1.1 2.95 228 224 0.09
Dom Nuñez COL C 588.8 0.5 1.72 314 318 0.07
Aristides Aquino CIN OF 589.0 0.3 2.34 343 276 0.01
Andrelton Simmons CHC SS 589.7 1.0 1.45 230 335 0.08
Kevin Kiermaier TBR OF 590.4 1.2 3.21 208 210 0.22
Yadiel Hernandez WSN OF 590.4 0.1 3.09 454 216 -0.01
Lewin Díaz 0 1B 590.8 0.3 1.58 361 327 0.01
Matt Beaty SDP OF,Oth 591.1 0.2 2.08 397 293 0.00
Brett Phillips TBR OF 592.3 0.3 1.76 346 313 0.00
Curt Casali SFG C 592.4 0.9 1.22 245 349 0.18
Taylor Walls TBR SS 592.7 1.2 1.65 213 324 0.12
Edwin Ríos LAD IF 592.8 0.0 0.11 468 466 -0.01
Eric Thames OAK OF,Oth 593.2 0.1 NA 425 -16 -0.01
Oscar Mercado CLE OF 593.9 0.6 2.43 304 274 0.04
Riley Adams WSN C 593.9 0.8 1.41 268 337 0.15
Kevin Pillar LAD OF 594.3 0.5 2.02 319 298 0.03
Robinson Chirinos BAL C 594.4 0.7 1.86 284 307 0.14
Victor Reyes DET OF 594.6 0.4 2.09 341 292 0.01
Austin Barnes LAD C 594.7 0.8 1.31 258 341 0.16
Donovan Solano CIN 2B 594.8 0.4 1.87 326 305 0.04
Jake Meyers HOU OF 595.0 1.1 3.74 222 175 0.20
Jason Heyward CHC OF 595.0 0.9 2.28 251 281 0.11
Stephen Piscotty OAK OF 595.3 -0.2 2.04 524 294 -0.01
William Contreras ATL C 595.4 0.2 0.42 407 436 0.02
Albert Pujols STL 1B 595.5 -0.4 1.40 527 338 0.00
Christian Arroyo BOS 2B 596.2 0.3 1.58 348 328 0.03
Mauricio Dubón SFG OF,Oth 596.5 0.4 1.02 336 367 0.03
Travis Swaggerty 0 OF 596.5 0.4 NA 340 -56 0.03
Khalil Lee 0 OF 596.7 -0.1 NA 513 -35 -0.01
Nick Fortes 0 C 596.7 0.3 NA 364 -45 0.02
Kelvin Gutierrez BAL 3B 597.0 0.2 1.79 392 311 0.02
Yu Chang CLE IF 597.0 0.4 1.82 342 309 0.02
Phil Gosselin 0 OF 597.1 -0.1 0.47 516 431 -0.01
Charlie Culberson 0 OF,Oth 597.2 0.0 0.95 462 372 -0.02
Jake Burger CHW 3B 597.5 0.2 NA 388 -24 0.01
Adam Engel CHW OF 597.6 0.6 3.28 291 203 0.06
Matt Carpenter 0 3B 597.6 0.0 0.60 481 407 0.00
Matt Thaiss LAA IF 597.6 0.1 NA 439 -39 -0.01
Andrew Stevenson WSN OF 597.8 -0.1 1.49 501 334 -0.01
Alex Dickerson ATL OF 598.0 0.2 2.33 380 278 0.00
Miguel Andújar NYY OF 598.0 0.0 0.66 486 399 -0.02
Zach McKinstry 0 OF,Oth 598.0 -0.2 0.91 525 373 -0.01
Kevin Newman PIT SS 598.1 0.6 2.34 297 277 0.04
Mike Brosseau MIL IF 598.1 0.5 1.55 322 332 0.05
Seby Zavala CHW C 598.5 -0.1 0.95 518 371 0.00
Brett Gardner 0 OF 598.6 0.5 1.75 310 316 0.04
Zack Collins CHW C 598.9 0.6 0.74 307 391 0.09
Colton Welker COL IF 599.0 0.2 NA 382 -12 0.00
Michael Hermosillo CHC OF 599.0 0.3 NA 363 -40 0.00
Steven Duggar SFG OF 599.0 0.7 3.08 286 217 0.08
Brent Rooker MIN OF 599.1 0.3 1.56 345 331 0.00
Billy McKinney 0 OF 599.2 0.0 0.60 461 405 -0.02
Kurt Suzuki LAA C 599.2 0.2 0.81 394 383 0.02
Billy Hamilton 0 OF 599.3 -0.1 0.50 502 426 -0.01
David Bote CHC IF 599.3 0.4 0.86 325 376 0.05
Daz Cameron 0 OF 599.3 0.1 0.88 418 375 -0.01
Jose Trevino TEX C 599.3 0.3 0.81 358 384 0.04
Andrew Knizner STL C 599.4 0.6 0.51 292 422 0.09
David Dahl MIL OF 599.4 0.0 0.26 467 455 -0.02
Yonathan Daza COL OF 599.4 0.0 1.15 498 355 -0.02
Austin Allen OAK C 599.5 0.6 NA 293 -5 0.10
Renato Núñez 0 1B 599.6 0.1 0.60 444 406 -0.01
Reese McGuire TOR C 599.7 0.2 0.42 401 435 0.02
Starlin Castro 0 IF 599.8 0.3 0.74 371 390 0.03
Tim Locastro NYY OF 599.8 0.1 0.68 450 397 -0.01
Asdrúbal Cabrera CIN IF 599.9 0.1 1.38 411 339 0.00
Jason Castro HOU C 599.9 0.8 1.28 265 343 0.17
Eli White TEX OF 600.0 0.1 0.84 423 378 -0.01
Harold Castro DET OF,Oth 600.0 -0.1 1.27 507 346 -0.01
Luis Rengifo LAA 2B 600.0 0.3 0.76 362 389 0.04
Thairo Estrada SFG IF 600.0 0.7 2.18 288 288 0.05
Sergio Alcántara ARI IF 600.1 0.3 0.98 368 369 0.02
Greg Allen PIT OF 600.2 0.3 NA 354 -21 0.01
Max Schrock CIN OF 600.2 0.0 1.17 482 354 -0.02
Jordan Luplow ARI OF 600.3 0.8 2.58 266 262 0.10
Josh VanMeter ARI OF,Oth 600.3 0.2 0.52 390 421 0.00
Nomar Mazara SDP OF 600.3 0.1 1.03 441 364 -0.01
Jose Rojas LAA OF 600.4 -0.2 0.70 522 393 0.00
Ryan O'Hearn KCR 1B 600.4 0.0 0.77 491 388 -0.01
DJ Stewart BAL OF 600.5 0.5 1.76 313 314 0.02
Isan Díaz 0 IF 600.5 0.1 0.28 430 453 0.00
Jacob Nottingham BAL C 600.5 0.1 NA 432 -23 0.01
Ryan Vilade 0 OF 600.5 -0.1 NA 517 -51 -0.01
Stephen Vogt OAK C 600.5 0.2 0.98 404 370 0.03
Willians Astudillo MIA IF 600.5 0.0 0.23 497 463 -0.01
Brian Goodwin 0 OF 600.6 0.1 1.22 413 348 -0.01
Cam Gallagher KCR C 600.6 0.3 0.46 347 432 0.05
Hanser Alberto LAD IF 600.6 0.3 1.03 355 365 0.02
Hoy Park PIT 2B 600.6 0.4 0.83 329 379 0.06
Jake Bauers CIN OF,Oth 600.6 -0.1 0.36 508 442 -0.01
Marwin Gonzalez NYY IF 600.6 0.1 0.64 438 402 -0.01
Travis Shaw 0 3B 600.6 0.0 0.65 496 400 0.00
Yonny Hernandez TEX 3B 600.6 0.3 0.56 376 413 0.03
Aramis Garcia CIN C 600.7 0.0 0.35 460 443 0.00
Geraldo Perdomo ARI SS 600.7 0.2 NA 386 -20 0.01
TJ Friedl 0 OF 600.7 0.1 NA 451 -55 -0.01
Andrew Velazquez LAA SS 600.8 0.2 0.85 381 377 0.02
Chris Owings 0 IF 600.8 0.0 0.60 463 408 -0.02
Estevan Florial 0 OF 600.8 0.1 NA 426 -17 -0.01
Evan White SEA 1B 600.8 0.0 0.23 470 462 -0.01
Garrett Stubbs PHI C,Oth 600.8 0.2 NA 385 -19 0.00
Jahmai Jones 0 2B 600.8 0.0 0.25 471 459 -0.01
Jake Rogers DET C 600.8 0.3 0.64 357 403 0.04
Johan Camargo PHI IF 600.8 0.4 NA 333 -28 0.04
John Nogowski ATL 1B 600.8 0.0 0.25 474 458 -0.01
José Peraza NYY IF 600.8 0.1 0.40 434 439 -0.01
Mickey Moniak PHI OF 600.8 0.0 NA 485 -42 -0.02
Orlando Arcia ATL SS 600.8 0.3 0.73 365 392 0.03
Owen Miller CLE IF 600.8 0.2 0.80 399 385 0.00
Shogo Akiyama CIN OF 600.8 0.0 0.63 493 404 -0.02
Adam Haseley CHW OF 600.9 -0.1 NA 500 -1 -0.01
Andrew Knapp CIN C 600.9 0.0 0.33 458 448 0.00
Gabriel Arias CLE SS 600.9 0.4 NA 328 -18 0.03
Isaac Paredes DET 3B 600.9 0.4 0.51 330 425 0.04
Jack Mayfield LAA IF 600.9 0.1 0.82 431 382 0.00
Lewis Brinson 0 OF 600.9 0.0 0.52 478 419 -0.02
Mitch Moreland 0 1B 600.9 0.2 1.28 398 344 0.00
Ronald Torreyes PHI IF 600.9 0.1 0.69 447 395 0.00
Taylor Trammell 0 OF 600.9 0.0 0.47 494 430 -0.02
Tomás Nido NYM C 600.9 0.3 1.19 372 351 0.03
Wilson Ramos 0 C 600.9 0.3 0.58 375 410 0.05
Jake McCarthy ARI OF 601.0 0.0 2.23 472 285 -0.02
Taylor Ward LAA OF 601.0 0.4 1.57 339 329 0.02
Aaron Altherr 0 OF 999.0 0.1 NA 410 0 -0.01
Adam Eaton 0 OF 999.0 0.2 1.17 378 353 -0.01
Alan Trejo COL IF 999.0 0.0 0.28 456 454 -0.01
Alex Blandino 0 IF 999.0 -0.2 0.33 520 449 -0.01
Alfonso Rivas CHC OF,Oth 999.0 0.0 NA 457 -4 -0.02
Austin Romine 0 C 999.0 0.1 0.22 412 464 0.01
Ben Rortvedt NYY C 999.0 1.0 1.13 232 356 0.22
Brennen Davis CHC OF 999.0 0.3 NA 344 -7 0.01
Brock Holt ATL IF 999.0 -0.1 0.52 503 420 -0.02
Chance Sisco 0 C 999.0 0.1 0.08 414 467 0.01
Christin Stewart BOS OF 999.0 0.0 NA 464 -9 -0.02
Cody Thomas 0 OF 999.0 -0.4 NA 528 -11 0.00
Cooper Hummel ARI C,Oth 999.0 0.3 NA 351 -13 0.01
Curtis Terry MIN DH 999.0 0.2 NA 383 -14 -0.01
Daniel Johnson CLE OF 999.0 0.0 0.55 465 414 -0.02
Daniel Robertson MIN IF 999.0 0.0 0.24 466 460 -0.01
Danny Mendick CHW IF 999.0 0.1 0.56 416 412 0.00
Danny Santana 0 OF,Oth 999.0 0.1 1.02 417 366 -0.01
Delino DeShields MIA OF 999.0 0.1 0.35 419 445 -0.01
Derek Hill DET OF 999.0 0.1 1.20 420 350 -0.01
Dexter Fowler 0 OF 999.0 -0.1 NA 505 -15 -0.02
Drew Ellis ARI 3B 999.0 0.1 0.33 421 447 0.00
Ehire Adrianza WSN IF 999.0 0.1 1.43 422 336 0.01
Emmanuel Rivera KCR 3B 999.0 0.1 0.66 424 398 0.01
Eric Sogard 0 2B 999.0 0.0 0.54 469 416 -0.01
Ernie Clement CLE IF 999.0 0.2 0.53 384 418 0.00
Gilberto Celestino MIN OF 999.0 0.1 0.23 427 461 -0.01
Guillermo Heredia ATL OF 999.0 -0.1 1.03 506 362 -0.01
Heliot Ramos 0 OF 999.0 0.1 NA 429 -22 -0.01
Jake Cave MIN OF 999.0 -0.1 0.69 509 396 -0.01
Jake Marisnick 0 OF 999.0 0.1 1.10 433 359 -0.01
Jared Oliva 0 OF 999.0 -0.2 NA 521 -25 -0.01
Jarrod Dyson 0 OF 999.0 -0.1 0.70 510 394 -0.01
Joe Panik 0 2B 999.0 0.0 0.56 473 411 -0.01
Jordy Mercer 0 SS 999.0 -0.1 0.35 511 444 0.00
José Devers MIA IF 999.0 0.0 NA 475 -29 -0.01
Josh Palacios 0 OF 999.0 -0.1 NA 512 -32 -0.01
Josh Reddick 0 OF 999.0 -0.2 0.51 523 424 0.00
Juan Lagares 0 OF 999.0 0.1 0.78 435 387 -0.02
Khris Davis 0 OF 999.0 0.0 0.82 476 381 -0.02
Kyle Garlick MIN OF 999.0 0.0 0.64 477 401 -0.02
Luis Barrera 0 OF 999.0 -0.1 NA 514 -36 -0.01
Luis Campusano SDP C 999.0 0.5 NA 320 -37 0.07
Luis Guillorme NYM IF 999.0 0.2 0.49 396 427 0.01
Luke Maile CLE C 999.0 0.1 NA 436 -38 0.00
Luke Raley TBR OF 999.0 0.1 0.25 437 457 -0.01
Luke Williams SFG OF 999.0 0.0 0.36 479 441 -0.02
Magneuris Sierra LAA OF 999.0 -0.3 0.51 526 423 0.00
Matt Joyce PHI OF 999.0 -0.1 0.26 515 456 -0.01
Michael Perez PIT C 999.0 0.5 0.82 321 380 0.06
Micker Adolfo CHW OF 999.0 0.0 NA 484 -41 -0.02
Nick Allen 0 SS 999.0 0.1 NA 440 -44 0.01
Nick Maton PHI IF 999.0 0.0 0.47 487 429 -0.01
Pablo Reyes MIL OF,Oth 999.0 0.1 0.44 442 434 -0.01
Patrick Mazeika 0 C 999.0 0.1 0.15 443 465 0.01
Payton Henry MIA C 999.0 0.2 NA 400 -47 0.02
Richie Martin BAL SS 999.0 0.0 0.31 488 451 0.00
Rob Refsnyder BOS OF 999.0 0.0 0.41 489 437 -0.02
Rodolfo Castro 0 2B 999.0 0.1 0.48 445 428 0.00
Roman Quinn 0 OF 999.0 0.0 0.41 490 438 -0.02
Romy Gonzalez CHW OF,Oth 999.0 0.1 NA 446 -50 -0.01
Ryan McKenna BAL OF 999.0 0.1 0.32 448 450 -0.01
Sandy León CLE C 999.0 0.0 0.44 492 433 0.00
Seiya Suzuki CHC DH 999.0 2.6 NA 76 -52 0.64
Shed Long Jr. BAL OF,Oth 999.0 0.2 0.88 402 374 0.00
Sheldon Neuse OAK 2B 999.0 0.3 1.67 370 323 0.01
Skye Bolt OAK OF 999.0 0.2 0.34 403 446 0.00
Taylor Jones HOU 1B 999.0 0.1 0.38 449 440 -0.01
Travis Jankowski NYM OF 999.0 0.0 0.54 495 415 -0.02
Tres Barrera WSN C 999.0 0.1 0.59 452 409 0.02
Tyler Nevin BAL OF,Oth 999.0 0.1 NA 453 -57 -0.01
Vimael Machín 0 IF 999.0 0.2 NA 406 -59 0.01
Wilmer Difo ARI IF 999.0 -0.1 0.78 519 386 0.00
Yairo Muñoz 0 OF,Oth 999.0 0.2 NA 409 -60 -0.01
Zach Reks 0 OF 999.0 0.0 NA 499 -61 -0.02
Zack Short 0 SS 999.0 0.1 0.29 455 452 0.01

1B

WAR Ranks are for the position, and Pos_Rank is based on Model Score , and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Vladimir Guerrero Jr. TOR IF 5 5.6 8.31 1 1 0.88
Freddie Freeman LAD 1B 18 5.1 7.94 2 2 0.86
Matt Olson ATL 1B 37 4.2 7.31 3 4 0.81
Pete Alonso NYM 1B 45 3.5 7.17 5 5 0.76
Paul Goldschmidt STL 1B 48 3.5 7.73 4 3 0.72
José Abreu CHW 1B 79 2.1 6.83 13 6 0.46
Jared Walsh LAA 1B 119 2.2 6.54 11 9 0.52
Ryan Mountcastle BAL OF,Oth 121 1.6 6.14 21 12 0.26
Rhys Hoskins PHI OF,Oth 123 3.0 6.30 7 10 0.64
C.J. Cron COL 1B 123 1.7 6.04 18 13 0.32
DJ LeMahieu NYY IF 123 2.3 4.02 10 25 0.38
Max Muncy LAD IF 126 3.2 5.92 6 14 0.68
Josh Bell WSN 1B 129 1.9 5.86 15 15 0.44
Joey Votto CIN 1B 142 1.9 6.54 14 8 0.41
Ty France SEA 1B 158 2.4 5.12 9 20 0.57
Alex Kirilloff MIN OF,Oth 180 1.6 4.39 20 24 0.24
Anthony Rizzo NYY 1B 187 2.1 5.48 12 16 0.49
Trey Mancini BAL OF,Oth 209 1.4 4.78 25 22 0.21
Yuli Gurriel HOU 1B 210 1.4 4.74 26 23 0.19
Jonathan Schoop DET IF 215 1.7 5.24 19 17 0.37
Bobby Dalbec BOS 1B 223 1.7 4.92 17 21 0.35
Brandon Belt SFG 1B 234 2.5 6.14 8 11 0.61
Luke Voit SDP 1B 237 1.3 3.82 27 29 0.17
Frank Schwindel CHC 1B 240 0.8 6.59 31 7 0.10
Nathaniel Lowe TEX 1B 251 1.8 5.16 16 19 0.39
Miguel Sanó MIN IF 277 0.8 5.19 32 18 0.08
Jesús Aguilar MIA 1B 304 1.1 3.87 29 27 0.14
Connor Joe COL OF,Oth 346 0.7 3.25 36 35 0.07
Rowdy Tellez MIL 1B 356 0.8 3.02 33 39 0.12
Austin Nola SDP C,Oth 380 1.4 1.98 24 47 0.21
Dominic Smith NYM OF,Oth 459 0.5 2.51 42 43 0.04
Yoshi Tsutsugo PIT OF,Oth 459 0.3 2.69 47 41 0.02
Darin Ruf SFG OF,Oth 478 0.9 3.83 30 28 0.13
Yandy Díaz TBR IF 484 1.6 3.44 22 34 0.26
Eric Hosmer SDP 1B 485 0.4 3.70 43 30 0.02
Pavin Smith ARI OF,Oth 497 0.7 3.53 38 33 0.06
Bobby Bradley CLE 1B 512 0.5 3.54 40 32 0.03
Christian Walker ARI 1B 518 0.7 3.22 35 37 0.08
Carlos Santana KCR 1B 525 0.7 3.25 34 36 0.09
Garrett Cooper MIA OF,Oth 533 1.1 3.94 28 26 0.16
Brad Miller TEX IF 544 1.5 3.61 23 31 0.17
Seth Beer ARI 1B 554 0.3 NA 46 -4 0.01
Matt Vierling PHI OF,Oth 575 0.6 2.37 39 44 0.05
Colin Moran CIN IF 579 -0.1 2.79 65 40 -0.01
Michael Chavis PIT IF 581 0.0 2.63 62 42 -0.01
Ji-Man Choi TBR 1B 581 0.7 3.21 37 38 0.07
Daniel Vogelbach PIT 1B 588 0.5 2.16 41 45 0.04
Lewin Díaz 0 1B 591 0.3 1.58 45 49 0.01
Matt Beaty SDP OF,Oth 591 0.2 2.08 49 46 0.00
Edwin Ríos LAD IF 593 0.0 0.11 59 62 -0.01
Eric Thames OAK OF,Oth 593 0.1 NA 53 -2 -0.01
Albert Pujols STL 1B 596 -0.4 1.40 68 50 0.00
Yu Chang CLE IF 597 0.4 1.82 44 48 0.02
Matt Thaiss LAA IF 598 0.1 NA 54 -3 -0.01
Colton Welker COL IF 599 0.2 NA 48 -1 0.00
Renato Núñez 0 1B 600 0.1 0.60 55 55 -0.01
Ryan O'Hearn KCR 1B 600 0.0 0.77 63 54 -0.01
Willians Astudillo MIA IF 600 0.0 0.23 64 61 -0.01
Jake Bauers CIN OF,Oth 601 -0.1 0.36 66 57 -0.01
Evan White SEA 1B 601 0.0 0.23 60 60 -0.01
John Nogowski ATL 1B 601 0.0 0.25 61 59 -0.01
Owen Miller CLE IF 601 0.2 0.80 51 53 0.00
Mitch Moreland 0 1B 601 0.2 1.28 50 51 0.00
Alex Blandino 0 IF 999 -0.2 0.33 67 58 -0.01
Alfonso Rivas CHC OF,Oth 999 0.0 NA 58 0 -0.02
Danny Santana 0 OF,Oth 999 0.1 1.02 52 52 -0.01
Taylor Jones HOU 1B 999 0.1 0.38 56 56 -0.01
Tyler Nevin BAL OF,Oth 999 0.1 NA 57 -5 -0.01

2B

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Ozzie Albies ATL 2B 18 4.1 6.97 3 5 0.88
Whit Merrifield KCR OF,Oth 33 2.3 5.72 16 11 0.42
Marcus Semien TEX IF 39 4.6 8.24 1 1 0.85
Jose Altuve HOU 2B 74 3.8 7.41 5 3 0.81
Brandon Lowe TBR 2B 77 4.4 7.01 2 4 0.92
Jorge Polanco MIN IF 78 3.1 7.50 9 2 0.56
Jazz Chisholm Jr. MIA IF 78 1.8 5.82 20 10 0.28
Ketel Marte ARI IF 78 3.7 6.52 6 7 0.65
Tommy Edman STL 2B 91 2.3 5.20 15 16 0.54
Jonathan India CIN 2B 92 3.8 6.95 4 6 0.84
DJ LeMahieu NYY IF 123 2.3 4.02 13 26 0.38
Max Muncy LAD IF 126 3.2 5.92 8 8 0.68
Jake Cronenworth SDP 2B 128 3.4 5.86 7 9 0.74
Ryan McMahon COL IF 158 2.1 5.47 17 13 0.32
Gleyber Torres NYY IF 159 2.5 4.02 11 27 0.45
Brendan Rodgers COL IF 169 1.6 5.10 26 18 0.23
Kolten Wong MIL 2B 195 2.5 5.59 12 12 0.63
Jean Segura PHI IF 205 2.3 5.39 14 14 0.40
Jonathan Schoop DET IF 215 1.7 5.24 25 15 0.37
Enrique Hernández BOS OF,Oth 226 2.8 5.10 10 17 0.53
Jonathan Villar CHC IF 242 1.2 4.05 41 25 0.13
Josh Rojas ARI OF,Oth 247 1.5 4.36 31 23 0.27
Nicky Lopez KCR IF 254 1.8 4.50 22 20 0.26
Gavin Lux LAD IF 284 1.5 3.11 29 36 0.19
Andrés Giménez CLE IF 292 1.7 3.20 23 35 0.24
Jeff McNeil NYM OF,Oth 314 1.9 3.56 19 33 0.38
Garrett Hampson COL OF,Oth 323 0.3 2.72 61 46 0.01
Cavan Biggio TOR 2B 326 1.4 2.79 35 41 0.20
Ha-Seong Kim SDP IF 348 1.5 2.84 30 39 0.20
Nick Madrigal CHC 2B 359 1.8 3.61 21 32 0.41
Abraham Toro SEA IF 365 1.4 2.75 34 44 0.16
Luis Arraez MIN IF 372 1.5 3.71 32 29 0.22
Mike Moustakas CIN IF 383 0.9 2.47 45 52 0.10
Josh Harrison CHW 2B 398 1.2 3.70 42 30 0.15
César Hernández WSN 2B 414 1.7 4.49 24 21 0.37
Adam Frazier SEA OF,Oth 415 2.0 4.73 18 19 0.41
Vidal Bruján 0 OF,Oth 422 0.8 NA 46 -3 0.10
Joey Wendle MIA IF 426 1.4 4.46 38 22 0.17
David Fletcher LAA 2B 430 1.4 3.85 36 28 0.21
Keston Hiura MIL 2B 432 0.2 1.77 74 56 0.01
Jorge Mateo BAL OF,Oth 456 0.5 2.76 52 42 0.04
Tony Kemp OAK OF,Oth 462 1.6 4.18 27 24 0.28
Wilmer Flores SFG 2B 479 1.3 3.67 40 31 0.16
Nick Solak TEX 2B 509 0.6 2.60 49 49 0.08
Rougned Odor BAL 2B 518 0.6 2.86 50 38 0.09
Tyler Wade LAA IF 520 0.3 1.74 70 57 0.03
Edmundo Sosa STL IF 520 1.4 2.83 37 40 0.16
Nico Hoerner CHC IF 524 1.4 2.64 39 47 0.15
Dylan Moore SEA OF,Oth 528 0.5 1.57 51 61 0.05
Robinson Canó NYM 2B 534 0.3 NA 66 -2 0.03
Ramón Urías BAL IF 539 1.5 3.35 33 34 0.18
Jurickson Profar SDP OF,Oth 550 0.3 2.73 64 45 0.02
Andy Ibáñez TEX 2B 559 1.5 2.75 28 43 0.28
Tommy La Stella SFG 2B 565 1.2 2.94 43 37 0.14
Luis García WSN 2B 574 0.7 2.59 47 50 0.09
Willi Castro DET IF 575 0.3 1.03 71 64 0.01
Aledmys Díaz HOU IF 580 0.9 2.14 44 54 0.07
Michael Chavis PIT IF 581 0.0 2.63 89 48 -0.01
Jace Peterson MIL OF,Oth 583 0.3 1.68 63 58 0.01
Jed Lowrie OAK IF 588 0.4 2.58 57 51 0.04
Donovan Solano CIN 2B 595 0.4 1.87 55 55 0.04
Christian Arroyo BOS 2B 596 0.3 1.58 60 60 0.03
Mauricio Dubón SFG OF,Oth 596 0.4 1.02 59 66 0.03
Zach McKinstry 0 OF,Oth 598 -0.2 0.91 95 68 -0.01
Mike Brosseau MIL IF 598 0.5 1.55 53 62 0.05
David Bote CHC IF 599 0.4 0.86 54 70 0.05
Starlin Castro 0 IF 600 0.3 0.74 69 75 0.03
Harold Castro DET OF,Oth 600 -0.1 1.27 92 63 -0.01
Luis Rengifo LAA 2B 600 0.3 0.76 65 74 0.04
Thairo Estrada SFG IF 600 0.7 2.18 48 53 0.05
Sergio Alcántara ARI IF 600 0.3 0.98 67 67 0.02
Josh VanMeter ARI OF,Oth 600 0.2 0.52 73 82 0.00
Isan Díaz 0 IF 600 0.1 0.28 79 88 0.00
Hanser Alberto LAD IF 601 0.3 1.03 62 65 0.02
Hoy Park PIT 2B 601 0.4 0.83 56 71 0.06
Chris Owings 0 IF 601 0.0 0.60 83 76 -0.02
Jahmai Jones 0 2B 601 0.0 0.25 86 90 -0.01
Johan Camargo PHI IF 601 0.4 NA 58 0 0.04
José Peraza NYY IF 601 0.1 0.40 80 86 -0.01
Owen Miller CLE IF 601 0.2 0.80 76 72 0.00
Alan Trejo COL IF 999 0.0 0.28 82 89 -0.01
Alex Blandino 0 IF 999 -0.2 0.33 94 87 -0.01
Brock Holt ATL IF 999 -0.1 0.52 91 81 -0.02
Daniel Robertson MIN IF 999 0.0 0.24 84 91 -0.01
Danny Mendick CHW IF 999 0.1 0.56 78 78 0.00
Eric Sogard 0 2B 999 0.0 0.54 85 79 -0.01
Ernie Clement CLE IF 999 0.2 0.53 72 80 0.00
Joe Panik 0 2B 999 0.0 0.56 87 77 -0.01
José Devers MIA IF 999 0.0 NA 88 -1 -0.01
Luis Guillorme NYM IF 999 0.2 0.49 75 83 0.01
Nick Maton PHI IF 999 0.0 0.47 90 85 -0.01
Rodolfo Castro 0 2B 999 0.1 0.48 81 84 0.00
Shed Long Jr. BAL OF,Oth 999 0.2 0.88 77 69 0.00
Sheldon Neuse OAK 2B 999 0.3 1.67 68 59 0.01
Wilmer Difo ARI IF 999 -0.1 0.78 93 73 0.00

3B

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
José Ramírez CLE 3B 3.1 5.9 7.89 1 3 0.94
Vladimir Guerrero Jr. TOR IF 5.0 5.6 8.31 2 1 0.88
Rafael Devers BOS 3B 14.2 4.8 8.02 3 2 0.84
Manny Machado SDP 3B 22.7 4.6 7.37 4 4 0.79
Austin Riley ATL 3B 51.8 3.1 6.70 13 6 0.46
Nolan Arenado STL 3B 69.5 3.7 6.37 7 7 0.66
Kris Bryant COL OF,Oth 74.2 2.3 6.71 17 5 0.36
Alex Bregman HOU 3B 88.4 4.5 4.67 5 17 0.74
Anthony Rendon LAA 3B 111.1 4.3 2.92 6 31 0.70
DJ LeMahieu NYY IF 123.3 2.3 4.02 16 23 0.38
Ke'Bryan Hayes PIT 3B 145.1 3.3 4.12 11 21 0.53
Justin Turner LAD 3B 151.0 3.0 5.79 14 8 0.43
Yoán Moncada CHW 3B 158.1 3.4 5.09 9 13 0.59
Ryan McMahon COL IF 158.2 2.1 5.47 19 10 0.32
Matt Chapman TOR 3B 174.5 3.6 4.71 8 16 0.63
Josh Donaldson NYY 3B 182.8 3.3 4.59 10 18 0.56
Luis Urías MIL IF 190.2 2.5 5.27 15 11 0.41
Eduardo Escobar NYM IF 202.3 1.9 5.59 21 9 0.30
Eugenio Suárez SEA 3B 204.3 2.2 4.26 18 20 0.34
Jeimer Candelario DET 3B 243.0 3.2 5.09 12 14 0.49
Miguel Sanó MIN IF 277.3 0.8 5.19 37 12 0.08
Isiah Kiner-Falefa NYY IF 292.0 1.6 4.08 22 22 0.21
Gio Urshela MIN 3B 320.0 1.4 3.48 29 26 0.14
Alec Bohm PHI 3B 328.8 1.4 3.33 27 29 0.19
Ha-Seong Kim SDP IF 348.4 1.5 2.84 24 32 0.20
Abraham Toro SEA IF 364.9 1.4 2.75 26 34 0.16
Patrick Wisdom CHC 3B 369.7 1.3 4.78 31 15 0.13
Luis Arraez MIN IF 372.3 1.5 3.71 25 25 0.22
Mike Moustakas CIN IF 383.4 0.9 2.47 35 36 0.10
Joey Wendle MIA IF 426.3 1.4 4.46 30 19 0.17
Hunter Dozier KCR OF,Oth 462.3 0.6 3.34 39 28 0.05
Evan Longoria SFG 3B 480.2 1.4 3.94 28 24 0.20
Yandy Díaz TBR IF 484.0 1.6 3.44 23 27 0.26
Brian Anderson MIA OF,Oth 510.8 1.9 3.23 20 30 0.28
J.D. Davis NYM OF,Oth 524.0 0.9 2.30 34 37 0.09
Kevin Smith OAK 3B 535.0 1.0 NA 32 -3 0.12
Carter Kieboom WSN 3B 564.7 0.8 1.67 36 42 0.09
Santiago Espinal TOR 3B 570.5 0.8 2.55 38 35 0.07
Colin Moran CIN IF 579.3 -0.1 2.79 75 33 -0.01
Aledmys Díaz HOU IF 580.0 0.9 2.14 33 38 0.07
Jon Berti MIA OF,Oth 581.0 0.4 1.11 45 46 0.03
Matt Duffy LAA 3B 587.0 0.6 2.03 40 39 0.06
Maikel Franco WSN 3B 587.7 0.0 1.00 70 48 0.00
Edwin Ríos LAD IF 592.8 0.0 0.11 69 68 -0.01
Kelvin Gutierrez BAL 3B 597.0 0.2 1.79 53 41 0.02
Yu Chang CLE IF 597.0 0.4 1.82 46 40 0.02
Charlie Culberson 0 OF,Oth 597.2 0.0 0.95 67 49 -0.02
Jake Burger CHW 3B 597.5 0.2 NA 52 -1 0.01
Matt Carpenter 0 3B 597.6 0.0 0.60 71 57 0.00
Matt Thaiss LAA IF 597.6 0.1 NA 63 -4 -0.01
Mike Brosseau MIL IF 598.1 0.5 1.55 41 43 0.05
Colton Welker COL IF 599.0 0.2 NA 50 0 0.00
David Bote CHC IF 599.3 0.4 0.86 42 50 0.05
Starlin Castro 0 IF 599.8 0.3 0.74 48 52 0.03
Asdrúbal Cabrera CIN IF 599.9 0.1 1.38 56 45 0.00
Isan Díaz 0 IF 600.5 0.1 0.28 60 65 0.00
Willians Astudillo MIA IF 600.5 0.0 0.23 73 67 -0.01
Hanser Alberto LAD IF 600.6 0.3 1.03 47 47 0.02
Marwin Gonzalez NYY IF 600.6 0.1 0.64 62 56 -0.01
Travis Shaw 0 3B 600.6 0.0 0.65 72 55 0.00
Yonny Hernandez TEX 3B 600.6 0.3 0.56 49 58 0.03
Johan Camargo PHI IF 600.8 0.4 NA 44 -2 0.04
Isaac Paredes DET 3B 600.9 0.4 0.51 43 61 0.04
Jack Mayfield LAA IF 600.9 0.1 0.82 61 51 0.00
Ronald Torreyes PHI IF 600.9 0.1 0.69 66 53 0.00
Brock Holt ATL IF 999.0 -0.1 0.52 74 60 -0.02
Daniel Robertson MIN IF 999.0 0.0 0.24 68 66 -0.01
Drew Ellis ARI 3B 999.0 0.1 0.33 57 64 0.00
Ehire Adrianza WSN IF 999.0 0.1 1.43 58 44 0.01
Emmanuel Rivera KCR 3B 999.0 0.1 0.66 59 54 0.01
Ernie Clement CLE IF 999.0 0.2 0.53 51 59 0.00
Luis Guillorme NYM IF 999.0 0.2 0.49 54 62 0.01
Pablo Reyes MIL OF,Oth 999.0 0.1 0.44 64 63 -0.01
Romy Gonzalez CHW OF,Oth 999.0 0.1 NA 65 -5 -0.01
Vimael Machín 0 IF 999.0 0.2 NA 55 -6 0.01

SS

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Trea Turner LAD SS 1.3 5.6 8.09 1 3 0.96
Bo Bichette TOR SS 4.6 4.7 8.26 2 1 0.89
Tim Anderson CHW SS 30.2 3.2 7.40 13 5 0.58
Trevor Story BOS SS 34.8 4.2 6.84 9 7 0.68
Marcus Semien TEX IF 39.0 4.6 8.24 4 2 0.85
Xander Bogaerts BOS SS 45.7 4.5 7.02 7 6 0.82
Fernando Tatis Jr. SDP SS 47.7 3.4 4.45 11 26 0.63
Francisco Lindor NYM SS 53.9 4.2 5.99 8 16 0.72
Adalberto Mondesi KCR SS 57.1 2.0 4.90 26 24 0.33
Wander Franco TBR SS 58.8 4.5 6.40 6 14 0.78
Javier Báez DET SS 62.4 2.8 6.81 15 8 0.53
Jorge Polanco MIN IF 77.8 3.1 7.50 14 4 0.56
Corey Seager TEX SS 78.2 4.5 6.61 5 9 0.75
Jazz Chisholm Jr. MIA IF 78.4 1.8 5.82 29 17 0.28
Ketel Marte ARI IF 78.4 3.7 6.52 10 10 0.65
Bobby Witt Jr. KCR SS 84.4 2.4 NA 20 0 0.42
Carlos Correa MIN SS 98.7 4.7 6.47 3 12 0.92
Dansby Swanson ATL SS 120.5 2.7 6.49 17 11 0.49
Willy Adames MIL SS 123.7 3.3 6.14 12 15 0.60
Chris Taylor LAD OF,Oth 141.6 2.2 5.32 24 20 0.37
Gleyber Torres NYY IF 158.6 2.5 4.02 18 30 0.45
Brendan Rodgers COL IF 168.8 1.6 5.10 34 22 0.23
Amed Rosario CLE SS 172.6 1.9 5.06 27 23 0.32
Luis Urías MIL IF 190.2 2.5 5.27 19 21 0.41
Eduardo Escobar NYM IF 202.3 1.9 5.59 28 18 0.30
Jean Segura PHI IF 205.1 2.3 5.39 22 19 0.40
Oneil Cruz 0 SS 212.2 1.8 NA 32 -8 0.29
Brandon Crawford SFG SS 222.5 2.7 6.46 16 13 0.51
Jonathan Villar CHC IF 242.5 1.2 4.05 42 29 0.13
Nicky Lopez KCR IF 254.1 1.8 4.50 31 25 0.26
Gavin Lux LAD IF 283.6 1.5 3.11 37 39 0.19
Andrés Giménez CLE IF 291.8 1.7 3.20 33 38 0.24
Isiah Kiner-Falefa NYY IF 292.0 1.6 4.08 35 28 0.21
Ha-Seong Kim SDP IF 348.4 1.5 2.84 38 41 0.20
Jeremy Peña HOU SS 451.0 1.8 NA 30 -5 0.25
J.P. Crawford SEA SS 478.9 2.4 3.88 21 31 0.44
Miguel Rojas MIA SS 492.7 2.3 4.32 23 27 0.38
Paul DeJong STL SS 498.0 2.1 3.77 25 32 0.35
Bryson Stott PHI SS 501.8 1.0 NA 49 -1 0.08
Jose Barrero CIN SS 518.7 1.2 1.61 43 54 0.11
Tyler Wade LAA IF 519.7 0.3 1.74 63 52 0.03
Edmundo Sosa STL IF 520.2 1.4 2.83 40 43 0.16
Nico Hoerner CHC IF 523.5 1.4 2.64 41 45 0.15
Didi Gregorius PHI SS 526.4 0.9 2.84 51 42 0.06
Kyle Farmer CIN SS 528.8 1.1 3.31 46 37 0.10
CJ Abrams SDP SS 534.7 0.3 NA 59 -2 0.02
José Iglesias COL SS 537.8 1.2 3.52 44 35 0.14
Ramón Urías BAL IF 539.1 1.5 3.35 39 36 0.18
Brad Miller TEX IF 544.0 1.5 3.61 36 33 0.17
Elvis Andrus OAK SS 568.8 0.9 2.79 52 44 0.06
Niko Goodrum HOU SS 574.0 0.7 2.26 53 48 0.05
Willi Castro DET IF 574.6 0.3 1.03 64 58 0.01
Aledmys Díaz HOU IF 580.0 0.9 2.14 50 50 0.07
Cole Tucker PIT OF,Oth 588.0 0.4 1.86 56 51 0.03
Jed Lowrie OAK IF 588.3 0.4 2.58 58 46 0.04
Alcides Escobar WSN SS 588.5 0.2 3.57 65 34 0.01
Nick Ahmed ARI SS 588.6 1.1 2.95 47 40 0.09
Andrelton Simmons CHC SS 589.7 1.0 1.45 48 55 0.08
Taylor Walls TBR SS 592.7 1.2 1.65 45 53 0.12
Kevin Newman PIT SS 598.1 0.6 2.34 55 47 0.04
Starlin Castro 0 IF 599.8 0.3 0.74 62 63 0.03
Asdrúbal Cabrera CIN IF 599.9 0.1 1.38 70 57 0.00
Thairo Estrada SFG IF 600.0 0.7 2.18 54 49 0.05
Sergio Alcántara ARI IF 600.1 0.3 0.98 61 59 0.02
Marwin Gonzalez NYY IF 600.6 0.1 0.64 75 66 -0.01
Geraldo Perdomo ARI SS 600.7 0.2 NA 67 -4 0.01
Andrew Velazquez LAA SS 600.8 0.2 0.85 66 60 0.02
Chris Owings 0 IF 600.8 0.0 0.60 80 67 -0.02
José Peraza NYY IF 600.8 0.1 0.40 74 70 -0.01
Orlando Arcia ATL SS 600.8 0.3 0.73 60 64 0.03
Gabriel Arias CLE SS 600.9 0.4 NA 57 -3 0.03
Jack Mayfield LAA IF 600.9 0.1 0.82 73 61 0.00
Ronald Torreyes PHI IF 600.9 0.1 0.69 77 65 0.00
Alan Trejo COL IF 999.0 0.0 0.28 79 74 -0.01
Daniel Robertson MIN IF 999.0 0.0 0.24 81 75 -0.01
Danny Mendick CHW IF 999.0 0.1 0.56 71 68 0.00
Ehire Adrianza WSN IF 999.0 0.1 1.43 72 56 0.01
Jordy Mercer 0 SS 999.0 -0.1 0.35 85 71 0.00
José Devers MIA IF 999.0 0.0 NA 82 -6 -0.01
Nick Allen 0 SS 999.0 0.1 NA 76 -7 0.01
Nick Maton PHI IF 999.0 0.0 0.47 83 69 -0.01
Richie Martin BAL SS 999.0 0.0 0.31 84 72 0.00
Vimael Machín 0 IF 999.0 0.2 NA 68 -9 0.01
Wilmer Difo ARI IF 999.0 -0.1 0.78 86 62 0.00
Yairo Muñoz 0 OF,Oth 999.0 0.2 NA 69 -10 -0.01
Zack Short 0 SS 999.0 0.1 0.29 78 73 0.01

LF

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Juan Soto WSN OF 3.8 7.5 7.81 1 2 0.92
Teoscar Hernández TOR OF 27.5 2.2 7.86 15 1 0.40
Tyler O'Neill STL OF 47.2 2.8 7.22 7 3 0.64
Eloy Jiménez CHW OF 65.4 2.2 4.78 11 24 0.45
Randy Arozarena TBR OF 66.1 2.2 6.38 14 7 0.34
Bryan Reynolds PIT OF 92.9 4.3 7.16 2 4 0.77
Christian Yelich MIL OF 97.8 2.9 4.85 6 23 0.59
Kyle Schwarber PHI OF 110.8 2.7 6.42 8 6 0.61
Jesse Winker SEA OF 116.2 3.3 6.48 4 5 0.74
Ryan Mountcastle BAL OF,Oth 120.7 1.6 6.14 27 8 0.26
Chris Taylor LAD OF,Oth 141.6 2.2 5.32 10 15 0.37
Lourdes Gurriel Jr. TOR OF 144.1 1.3 5.59 30 10 0.23
Austin Meadows TBR OF 149.0 1.5 5.32 29 14 0.25
Akil Baddoo DET OF 156.3 1.6 5.02 26 19 0.29
Marcell Ozuna ATL OF 169.2 2.2 2.99 13 48 0.47
Alex Verdugo BOS OF 170.0 2.4 5.41 9 11 0.41
Joey Gallo NYY OF 178.7 3.5 5.72 3 9 0.64
Eddie Rosario ATL OF 180.0 0.9 4.70 40 27 0.14
Andrew Benintendi KCR OF 192.2 1.9 4.99 18 21 0.38
Robbie Grossman DET OF 192.2 1.7 4.76 24 25 0.29
Adam Duvall ATL OF 214.6 1.7 5.02 21 20 0.27
Ian Happ CHC OF 219.1 2.1 5.25 16 16 0.35
AJ Pollock LAD OF 220.9 1.8 5.20 20 17 0.33
Jo Adell LAA OF 221.0 0.6 4.36 49 31 0.04
Jesús Sánchez MIA OF 234.0 2.2 5.19 12 18 0.36
Austin Hays BAL OF 247.4 1.7 5.34 22 13 0.28
Michael Brantley HOU OF 252.3 2.0 4.25 17 33 0.39
Tommy Pham CIN OF 257.9 1.7 4.16 25 35 0.34
Andrew Vaughn CHW OF 263.5 1.2 4.05 31 36 0.21
Mark Canha NYM OF 282.7 1.7 5.38 23 12 0.35
Wil Myers SDP OF 294.5 1.1 4.66 34 28 0.18
Raimel Tapia TOR OF 297.2 0.3 3.61 67 40 0.02
Jeff McNeil NYM OF,Oth 314.1 1.9 3.56 19 42 0.38
Andrew McCutchen MIL OF 327.4 0.9 4.70 37 26 0.12
Brandon Nimmo NYM OF 331.0 3.0 4.57 5 30 0.58
Connor Joe COL OF,Oth 345.9 0.7 3.25 47 44 0.07
Rafael Ortega CHC OF 363.8 0.9 4.27 43 32 0.11
LaMonte Wade Jr. SFG OF 373.7 1.0 4.98 35 22 0.13
Dominic Smith NYM OF,Oth 458.7 0.5 2.51 54 57 0.04
Tony Kemp OAK OF,Oth 461.7 1.6 4.18 28 34 0.28
Willie Calhoun TEX OF 470.0 0.2 2.73 75 53 0.00
Josh Lowe TBR OF 472.9 0.3 NA 64 -7 0.00
Darin Ruf SFG OF,Oth 478.1 0.9 3.83 39 37 0.13
Joc Pederson SFG OF 491.3 0.9 3.81 42 38 0.11
Sam Hilliard COL OF 495.5 0.4 3.78 57 39 0.02
Clint Frazier CHC OF 499.5 0.3 1.76 61 68 0.01
Seth Brown OAK OF 507.5 0.7 4.64 48 29 0.08
Chas McCormick HOU OF 511.8 1.1 3.22 32 45 0.20
J.D. Davis NYM OF,Oth 524.0 0.9 2.30 41 63 0.09
David Peralta ARI OF 525.8 1.1 3.57 33 41 0.18
Dylan Moore SEA OF,Oth 527.8 0.5 1.57 55 71 0.05
Jake Fraley CIN OF 537.7 0.8 2.81 44 50 0.10
Tyrone Taylor MIL OF 538.7 1.0 3.04 36 47 0.15
Jurickson Profar SDP OF,Oth 549.6 0.3 2.73 65 52 0.02
Bryan De La Cruz 0 OF 551.7 0.7 2.04 46 65 0.07
Anthony Alford PIT OF 564.0 0.0 2.68 88 55 -0.02
Justin Upton LAA OF 568.0 0.2 2.72 70 54 0.00
Trevor Larnach MIN OF 573.0 0.2 1.93 74 66 0.00
Chad Pinder OAK OF 574.5 0.5 2.92 52 49 0.03
Corey Dickerson STL OF 578.0 0.1 2.47 78 58 -0.01
Edward Olivares KCR OF 578.0 0.3 1.18 62 76 0.00
Lars Nootbaar STL OF 578.1 0.2 2.32 71 62 -0.01
Ben Gamel PIT OF 581.3 0.9 3.45 38 43 0.12
Josh Naylor CLE OF 584.5 0.5 2.76 56 51 0.03
Harold Ramirez TBR OF 584.7 0.1 1.29 80 74 -0.01
Aristides Aquino CIN OF 589.0 0.3 2.34 59 60 0.01
Yadiel Hernandez WSN OF 590.4 0.1 3.09 86 46 -0.01
Matt Beaty SDP OF,Oth 591.1 0.2 2.08 72 64 0.00
Oscar Mercado CLE OF 593.9 0.6 2.43 50 59 0.04
Phil Gosselin 0 OF 597.1 -0.1 0.47 109 90 -0.01
Charlie Culberson 0 OF,Oth 597.2 0.0 0.95 90 78 -0.02
Andrew Stevenson WSN OF 597.8 -0.1 1.49 104 73 -0.01
Alex Dickerson ATL OF 598.0 0.2 2.33 68 61 0.00
Miguel Andújar NYY OF 598.0 0.0 0.66 98 83 -0.02
Brett Gardner 0 OF 598.6 0.5 1.75 51 69 0.04
Michael Hermosillo CHC OF 599.0 0.3 NA 66 -10 0.00
Brent Rooker MIN OF 599.1 0.3 1.56 60 72 0.00
Billy McKinney 0 OF 599.2 0.0 0.60 89 86 -0.02
David Dahl MIL OF 599.4 0.0 0.26 93 94 -0.02
Tim Locastro NYY OF 599.8 0.1 0.68 83 82 -0.01
Eli White TEX OF 600.0 0.1 0.84 79 80 -0.01
Greg Allen PIT OF 600.2 0.3 NA 63 -5 0.01
Max Schrock CIN OF 600.2 0.0 1.17 96 77 -0.02
Jordan Luplow ARI OF 600.3 0.8 2.58 45 56 0.10
DJ Stewart BAL OF 600.5 0.5 1.76 53 67 0.02
Ryan Vilade 0 OF 600.5 -0.1 NA 110 -12 -0.01
Brian Goodwin 0 OF 600.6 0.1 1.22 77 75 -0.01
Jake Bauers CIN OF,Oth 600.6 -0.1 0.36 105 92 -0.01
TJ Friedl 0 OF 600.7 0.1 NA 84 -13 -0.01
Garrett Stubbs PHI C,Oth 600.8 0.2 NA 69 -4 0.00
Mickey Moniak PHI OF 600.8 0.0 NA 97 -11 -0.02
Shogo Akiyama CIN OF 600.8 0.0 0.63 100 85 -0.02
Adam Haseley CHW OF 600.9 -0.1 NA 103 -1 -0.01
Lewis Brinson 0 OF 600.9 0.0 0.52 95 88 -0.02
Taylor Trammell 0 OF 600.9 0.0 0.47 101 89 -0.02
Taylor Ward LAA OF 601.0 0.4 1.57 58 70 0.02
Aaron Altherr 0 OF 999.0 0.1 NA 76 0 -0.01
Alfonso Rivas CHC OF,Oth 999.0 0.0 NA 87 -2 -0.02
Christin Stewart BOS OF 999.0 0.0 NA 91 -3 -0.02
Daniel Johnson CLE OF 999.0 0.0 0.55 92 87 -0.02
Jake Cave MIN OF 999.0 -0.1 0.69 106 81 -0.01
Jared Oliva 0 OF 999.0 -0.2 NA 111 -6 -0.01
Josh Palacios 0 OF 999.0 -0.1 NA 107 -8 -0.01
Kyle Garlick MIN OF 999.0 0.0 0.64 94 84 -0.02
Luis Barrera 0 OF 999.0 -0.1 NA 108 -9 -0.01
Luke Raley TBR OF 999.0 0.1 0.25 81 95 -0.01
Rob Refsnyder BOS OF 999.0 0.0 0.41 99 91 -0.02
Ryan McKenna BAL OF 999.0 0.1 0.32 82 93 -0.01
Shed Long Jr. BAL OF,Oth 999.0 0.2 0.88 73 79 0.00
Tyler Nevin BAL OF,Oth 999.0 0.1 NA 85 -14 -0.01
Zach Reks 0 OF 999.0 0.0 NA 102 -15 -0.02

RF

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Juan Soto WSN OF 3.8 7.5 7.81 1 4 0.92
Bryce Harper PHI OF 8.6 5.3 8.30 4 1 0.79
Ronald Acuña Jr. ATL OF 12.0 5.1 7.04 5 9 0.75
Kyle Tucker HOU OF 12.4 4.6 7.78 6 5 0.71
Mookie Betts LAD OF 15.3 5.8 7.44 2 6 0.88
Teoscar Hernández TOR OF 27.5 2.2 7.86 22 3 0.40
Whit Merrifield KCR OF,Oth 33.1 2.3 5.72 18 16 0.42
Aaron Judge NYY OF 36.4 5.3 7.28 3 7 0.84
George Springer TOR OF 57.5 4.2 7.20 7 8 0.67
Nick Castellanos PHI OF 59.5 2.4 7.96 16 2 0.48
Randy Arozarena TBR OF 66.1 2.2 6.38 21 12 0.34
Christian Yelich MIL OF 97.8 2.9 4.85 10 28 0.59
Cody Bellinger LAD OF 104.8 3.1 3.44 9 46 0.61
Mitch Haniger SEA OF 108.5 2.5 6.64 14 10 0.50
Franmil Reyes CLE OF 121.8 1.9 6.18 23 13 0.32
Hunter Renfroe MIL OF 161.3 1.7 5.94 26 14 0.31
Adolis García TEX OF 167.8 1.2 5.41 32 17 0.20
Dylan Carlson STL OF 168.0 2.5 5.20 11 22 0.43
Alex Verdugo BOS OF 170.0 2.4 5.41 15 18 0.41
Avisaíl García MIA OF 171.1 2.3 6.39 17 11 0.44
Joey Gallo NYY OF 178.7 3.5 5.72 8 15 0.64
Alex Kirilloff MIN OF,Oth 180.3 1.6 4.39 28 34 0.24
Robbie Grossman DET OF 192.2 1.7 4.76 27 31 0.29
Jorge Soler MIA OF 192.3 1.6 4.94 29 27 0.25
Trey Mancini BAL OF,Oth 208.7 1.4 4.78 30 30 0.21
Adam Duvall ATL OF 214.6 1.7 5.02 24 25 0.27
Michael Conforto 0 OF 220.6 2.5 3.77 13 40 0.52
Jo Adell LAA OF 221.0 0.6 4.36 53 35 0.04
Jesús Sánchez MIA OF 234.0 2.2 5.19 19 23 0.36
Charlie Blackmon COL OF 237.3 0.6 4.84 51 29 0.06
Austin Hays BAL OF 247.4 1.7 5.34 25 19 0.28
Lane Thomas WSN OF 285.4 1.1 3.55 35 43 0.16
Mike Yastrzemski SFG OF 291.1 2.2 5.33 20 20 0.38
Wil Myers SDP OF 294.5 1.1 4.66 37 32 0.18
Max Kepler MIN OF 295.3 2.5 5.26 12 21 0.45
Anthony Santander BAL OF 305.1 1.3 4.15 31 37 0.21
Randal Grichuk COL OF 349.8 0.6 4.30 55 36 0.05
Tyler Naquin CIN OF 366.3 0.7 5.10 50 24 0.09
LaMonte Wade Jr. SFG OF 373.7 1.0 4.98 39 26 0.13
Manuel Margot TBR OF 418.2 1.1 3.65 36 42 0.16
Hunter Dozier KCR OF,Oth 462.3 0.6 3.34 52 47 0.05
Josh Lowe TBR OF 472.9 0.3 NA 66 -4 0.00
Joc Pederson SFG OF 491.3 0.9 3.81 43 39 0.11
Pavin Smith ARI OF,Oth 497.3 0.7 3.53 48 44 0.06
Clint Frazier CHC OF 499.5 0.3 1.76 64 66 0.01
Seth Brown OAK OF 507.5 0.7 4.64 49 33 0.08
Bradley Zimmer CLE OF 516.3 0.7 2.98 46 49 0.07
Gavin Sheets CHW OF 527.5 0.8 3.66 44 41 0.09
Garrett Cooper MIA OF,Oth 532.8 1.1 3.94 33 38 0.16
Kole Calhoun TEX OF 534.0 1.1 2.71 34 53 0.17
Tyrone Taylor MIL OF 538.7 1.0 3.04 40 48 0.15
Bryan De La Cruz 0 OF 551.7 0.7 2.04 47 62 0.07
Kyle Isbel KCR OF 555.4 0.6 2.55 54 55 0.03
Trevor Larnach MIN OF 573.0 0.2 1.93 69 63 0.00
Chad Pinder OAK OF 574.5 0.5 2.92 56 50 0.03
Edward Olivares KCR OF 578.0 0.3 1.18 65 70 0.00
Lars Nootbaar STL OF 578.1 0.2 2.32 68 57 -0.01
Austin Slater SFG OF 578.3 1.0 2.82 38 51 0.14
Jose Siri HOU OF 578.9 0.4 NA 59 -3 0.01
Ben Gamel PIT OF 581.3 0.9 3.45 41 45 0.12
Josh Naylor CLE OF 584.5 0.5 2.76 58 52 0.03
Harold Ramirez TBR OF 584.7 0.1 1.29 72 68 -0.01
Aristides Aquino CIN OF 589.0 0.3 2.34 62 56 0.01
Brett Phillips TBR OF 592.3 0.3 1.76 63 64 0.00
Victor Reyes DET OF 594.6 0.4 2.09 61 60 0.01
Jason Heyward CHC OF 595.0 0.9 2.28 42 58 0.11
Stephen Piscotty OAK OF 595.3 -0.2 2.04 92 61 -0.01
Khalil Lee 0 OF 596.7 -0.1 NA 86 -6 -0.01
Zach McKinstry 0 OF,Oth 598.0 -0.2 0.91 93 73 -0.01
Billy McKinney 0 OF 599.2 0.0 0.60 78 79 -0.02
Daz Cameron 0 OF 599.3 0.1 0.88 71 74 -0.01
Tim Locastro NYY OF 599.8 0.1 0.68 76 77 -0.01
Jordan Luplow ARI OF 600.3 0.8 2.58 45 54 0.10
Nomar Mazara SDP OF 600.3 0.1 1.03 74 72 -0.01
Jose Rojas LAA OF 600.4 -0.2 0.70 90 75 0.00
DJ Stewart BAL OF 600.5 0.5 1.76 57 65 0.02
Brian Goodwin 0 OF 600.6 0.1 1.22 70 69 -0.01
Jake McCarthy ARI OF 601.0 0.0 2.23 80 59 -0.02
Taylor Ward LAA OF 601.0 0.4 1.57 60 67 0.02
Adam Eaton 0 OF 999.0 0.2 1.17 67 71 -0.01
Alfonso Rivas CHC OF,Oth 999.0 0.0 NA 77 0 -0.02
Daniel Johnson CLE OF 999.0 0.0 0.55 79 80 -0.02
Dexter Fowler 0 OF 999.0 -0.1 NA 83 -1 -0.02
Jake Cave MIN OF 999.0 -0.1 0.69 84 76 -0.01
Jared Oliva 0 OF 999.0 -0.2 NA 89 -2 -0.01
Josh Palacios 0 OF 999.0 -0.1 NA 85 -5 -0.01
Josh Reddick 0 OF 999.0 -0.2 0.51 91 81 0.00
Kyle Garlick MIN OF 999.0 0.0 0.64 81 78 -0.02
Luis Barrera 0 OF 999.0 -0.1 NA 87 -7 -0.01
Luke Raley TBR OF 999.0 0.1 0.25 73 83 -0.01
Matt Joyce PHI OF 999.0 -0.1 0.26 88 82 -0.01
Romy Gonzalez CHW OF,Oth 999.0 0.1 NA 75 -8 -0.01
Zach Reks 0 OF 999.0 0.0 NA 82 -9 -0.02

CF

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Ronald Acuña Jr. ATL OF 12 5.1 7.04 2 7 0.75
Mike Trout LAA OF 13 6.5 7.35 1 4 0.94
Luis Robert CHW OF 16 4.6 8.11 4 1 0.85
Starling Marte NYM OF 33 2.7 6.71 14 8 0.50
Cedric Mullins BAL OF 33 3.2 7.80 8 2 0.66
Byron Buxton MIN OF 46 4.6 7.45 3 3 0.81
George Springer TOR OF 58 4.2 7.20 6 5 0.67
Ketel Marte ARI IF 78 3.7 6.52 7 9 0.65
Daulton Varsho ARI C,Oth 93 2.2 4.33 20 23 0.37
Bryan Reynolds PIT OF 93 4.3 7.16 5 6 0.77
Cody Bellinger LAD OF 105 3.1 3.44 9 34 0.61
Myles Straw CLE OF 128 2.3 3.88 19 26 0.39
Jarred Kelenic SEA OF 145 1.4 3.86 26 27 0.25
Trent Grisham SDP OF 147 3.1 5.13 10 17 0.63
Akil Baddoo DET OF 156 1.6 5.02 24 20 0.29
Adolis García TEX OF 168 1.2 5.41 27 10 0.20
Dylan Carlson STL OF 168 2.5 5.20 16 15 0.43
Alex Verdugo BOS OF 170 2.4 5.41 18 11 0.41
Ian Happ CHC OF 219 2.1 5.25 21 13 0.35
AJ Pollock LAD OF 221 1.8 5.20 22 14 0.33
Enrique Hernández BOS OF,Oth 226 2.8 5.10 13 18 0.53
Harrison Bader STL OF 239 2.9 4.65 12 21 0.55
Ramón Laureano OAK OF 251 2.6 5.13 15 16 0.48
Lane Thomas WSN OF 285 1.1 3.55 34 32 0.16
Max Kepler MIN OF 295 2.5 5.26 17 12 0.45
Garrett Hampson COL OF,Oth 323 0.3 2.72 64 44 0.01
Brandon Nimmo NYM OF 331 3.0 4.57 11 22 0.58
Randal Grichuk COL OF 350 0.6 4.30 54 24 0.05
Rafael Ortega CHC OF 364 0.9 4.27 41 25 0.11
Tyler Naquin CIN OF 366 0.7 5.10 47 19 0.09
Nick Senzel CIN OF 390 1.0 2.54 37 48 0.15
Manuel Margot TBR OF 418 1.1 3.65 35 31 0.16
Brandon Marsh LAA OF 432 1.1 2.70 31 45 0.19
Kyle Lewis SEA OF 439 1.2 2.65 29 46 0.21
Lorenzo Cain MIL OF 481 1.5 3.79 25 28 0.26
Victor Robles WSN OF 484 1.0 2.53 39 49 0.16
Sam Hilliard COL OF 496 0.4 3.78 61 29 0.02
Chas McCormick HOU OF 512 1.1 3.22 32 37 0.20
Jarren Duran 0 OF 512 0.4 1.92 57 58 0.03
Bradley Zimmer CLE OF 516 0.7 2.98 44 40 0.07
Aaron Hicks NYY OF 527 1.6 1.93 23 57 0.27
Michael A. Taylor KCR OF 533 1.2 3.35 30 35 0.21
Jake Fraley CIN OF 538 0.8 2.81 43 43 0.10
Leury García CHW OF 551 0.6 2.85 51 41 0.07
Bryan De La Cruz 0 OF 552 0.7 2.04 45 55 0.07
Kyle Isbel KCR OF 555 0.6 2.55 49 47 0.03
Cristian Pache OAK OF 568 0.8 1.36 42 63 0.10
Matt Vierling PHI OF,Oth 575 0.6 2.37 52 51 0.05
Austin Slater SFG OF 578 1.0 2.82 36 42 0.14
Jose Siri HOU OF 579 0.4 NA 58 -4 0.01
Leody Taveras 0 OF 584 0.6 1.10 50 69 0.06
Jackie Bradley Jr. BOS OF 587 0.2 1.70 66 61 0.00
Odúbel Herrera PHI OF 588 1.0 3.46 38 33 0.14
Nick Gordon MIN OF 588 0.4 1.28 60 64 0.01
Kevin Kiermaier TBR OF 590 1.2 3.21 28 38 0.22
Brett Phillips TBR OF 592 0.3 1.76 63 59 0.00
Oscar Mercado CLE OF 594 0.6 2.43 53 50 0.04
Kevin Pillar LAD OF 594 0.5 2.02 56 56 0.03
Victor Reyes DET OF 595 0.4 2.09 62 54 0.01
Jake Meyers HOU OF 595 1.1 3.74 33 30 0.20
Jason Heyward CHC OF 595 0.9 2.28 40 52 0.11
Mauricio Dubón SFG OF,Oth 596 0.4 1.02 59 71 0.03
Adam Engel CHW OF 598 0.6 3.28 48 36 0.06
Andrew Stevenson WSN OF 598 -0.1 1.49 92 62 -0.01
Brett Gardner 0 OF 599 0.5 1.75 55 60 0.04
Michael Hermosillo CHC OF 599 0.3 NA 65 -5 0.00
Steven Duggar SFG OF 599 0.7 3.08 46 39 0.08
Billy Hamilton 0 OF 599 -0.1 0.50 93 82 -0.01
Daz Cameron 0 OF 599 0.1 0.88 70 72 -0.01
David Dahl MIL OF 599 0.0 0.26 80 89 -0.02
Yonathan Daza COL OF 599 0.0 1.15 90 67 -0.02
Tim Locastro NYY OF 600 0.1 0.68 78 77 -0.01
Eli White TEX OF 600 0.1 0.84 73 73 -0.01
Brian Goodwin 0 OF 601 0.1 1.22 69 65 -0.01
TJ Friedl 0 OF 601 0.1 NA 79 -7 -0.01
Estevan Florial 0 OF 601 0.1 NA 74 -3 -0.01
Mickey Moniak PHI OF 601 0.0 NA 84 -6 -0.02
Shogo Akiyama CIN OF 601 0.0 0.63 87 78 -0.02
Adam Haseley CHW OF 601 -0.1 NA 91 -1 -0.01
Lewis Brinson 0 OF 601 0.0 0.52 82 80 -0.02
Taylor Trammell 0 OF 601 0.0 0.47 88 83 -0.02
Jake McCarthy ARI OF 601 0.0 2.23 81 53 -0.02
Aaron Altherr 0 OF 999 0.1 NA 68 0 -0.01
Delino DeShields MIA OF 999 0.1 0.35 71 87 -0.01
Derek Hill DET OF 999 0.1 1.20 72 66 -0.01
Dexter Fowler 0 OF 999 -0.1 NA 94 -2 -0.02
Gilberto Celestino MIN OF 999 0.1 0.23 75 90 -0.01
Guillermo Heredia ATL OF 999 -0.1 1.03 95 70 -0.01
Jake Cave MIN OF 999 -0.1 0.69 96 76 -0.01
Jake Marisnick 0 OF 999 0.1 1.10 76 68 -0.01
Jarrod Dyson 0 OF 999 -0.1 0.70 97 75 -0.01
Juan Lagares 0 OF 999 0.1 0.78 77 74 -0.02
Luke Williams SFG OF 999 0.0 0.36 83 86 -0.02
Magneuris Sierra LAA OF 999 -0.3 0.51 98 81 0.00
Rob Refsnyder BOS OF 999 0.0 0.41 85 84 -0.02
Roman Quinn 0 OF 999 0.0 0.41 86 85 -0.02
Skye Bolt OAK OF 999 0.2 0.34 67 88 0.00
Travis Jankowski NYM OF 999 0.0 0.54 89 79 -0.02

OF

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Juan Soto WSN OF 3.8 7.5 7.81 1 5 0.92
Bryce Harper PHI OF 8.6 5.3 8.30 5 1 0.79
Ronald Acuña Jr. ATL OF 12.0 5.1 7.04 6 15 0.75
Kyle Tucker HOU OF 12.4 4.6 7.78 8 7 0.71
Mike Trout LAA OF 13.0 6.5 7.35 2 10 0.94
Mookie Betts LAD OF 15.3 5.8 7.44 3 9 0.88
Luis Robert CHW OF 16.1 4.6 8.11 9 2 0.85
Teoscar Hernández TOR OF 27.5 2.2 7.86 46 4 0.40
Starling Marte NYM OF 33.0 2.7 6.71 25 17 0.50
Whit Merrifield KCR OF,Oth 33.1 2.3 5.72 38 31 0.42
Cedric Mullins BAL OF 33.2 3.2 7.80 15 6 0.66
Aaron Judge NYY OF 36.4 5.3 7.28 4 11 0.84
Byron Buxton MIN OF 45.6 4.6 7.45 7 8 0.81
Tyler O'Neill STL OF 47.2 2.8 7.22 23 12 0.64
George Springer TOR OF 57.5 4.2 7.20 11 13 0.67
Nick Castellanos PHI OF 59.5 2.4 7.96 33 3 0.48
Eloy Jiménez CHW OF 65.4 2.2 4.78 41 57 0.45
Randy Arozarena TBR OF 66.1 2.2 6.38 45 23 0.34
Kris Bryant COL OF,Oth 74.2 2.3 6.71 36 16 0.36
Ketel Marte ARI IF 78.4 3.7 6.52 12 19 0.65
J.D. Martinez BOS OF 88.5 2.0 6.35 49 24 0.40
Daulton Varsho ARI C,Oth 92.8 2.2 4.33 40 70 0.37
Bryan Reynolds PIT OF 92.9 4.3 7.16 10 14 0.77
Giancarlo Stanton NYY OF 95.8 2.3 5.45 35 33 0.51
Christian Yelich MIL OF 97.8 2.9 4.85 20 55 0.59
Cody Bellinger LAD OF 104.8 3.1 3.44 16 96 0.61
Mitch Haniger SEA OF 108.5 2.5 6.64 31 18 0.50
Kyle Schwarber PHI OF 110.8 2.7 6.42 24 21 0.61
Jesse Winker SEA OF 116.2 3.3 6.48 14 20 0.74
Ryan Mountcastle BAL OF,Oth 120.7 1.6 6.14 67 27 0.26
Franmil Reyes CLE OF 121.8 1.9 6.18 53 26 0.32
Rhys Hoskins PHI OF,Oth 122.9 3.0 6.30 19 25 0.64
Myles Straw CLE OF 128.4 2.3 3.88 37 79 0.39
Chris Taylor LAD OF,Oth 141.6 2.2 5.32 39 40 0.37
Lourdes Gurriel Jr. TOR OF 144.1 1.3 5.59 76 32 0.23
Jarred Kelenic SEA OF 144.8 1.4 3.86 72 80 0.25
Trent Grisham SDP OF 146.8 3.1 5.13 17 47 0.63
Austin Meadows TBR OF 149.0 1.5 5.32 69 39 0.25
Akil Baddoo DET OF 156.3 1.6 5.02 64 50 0.29
Hunter Renfroe MIL OF 161.3 1.7 5.94 58 28 0.31
Nelson Cruz WSN OF 167.6 1.4 5.75 73 29 0.16
Adolis García TEX OF 167.8 1.2 5.41 77 34 0.20
Dylan Carlson STL OF 168.0 2.5 5.20 28 44 0.43
Marcell Ozuna ATL OF 169.2 2.2 2.99 43 107 0.47
Alex Verdugo BOS OF 170.0 2.4 5.41 32 35 0.41
Avisaíl García MIA OF 171.1 2.3 6.39 34 22 0.44
Joey Gallo NYY OF 178.7 3.5 5.72 13 30 0.64
Eddie Rosario ATL OF 180.0 0.9 4.70 101 62 0.14
Alex Kirilloff MIN OF,Oth 180.3 1.6 4.39 65 67 0.24
Andrew Benintendi KCR OF 192.2 1.9 4.99 51 52 0.38
Robbie Grossman DET OF 192.2 1.7 4.76 61 59 0.29
Jorge Soler MIA OF 192.3 1.6 4.94 66 54 0.25
Trey Mancini BAL OF,Oth 208.7 1.4 4.78 74 58 0.21
Adam Duvall ATL OF 214.6 1.7 5.02 56 51 0.27
Ian Happ CHC OF 219.1 2.1 5.25 47 42 0.35
Michael Conforto 0 OF 220.6 2.5 3.77 30 85 0.52
AJ Pollock LAD OF 220.9 1.8 5.20 55 43 0.33
Jo Adell LAA OF 221.0 0.6 4.36 122 68 0.04
Enrique Hernández BOS OF,Oth 225.8 2.8 5.10 22 48 0.53
Jesús Sánchez MIA OF 234.0 2.2 5.19 42 45 0.36
Charlie Blackmon COL OF 237.3 0.6 4.84 120 56 0.06
Harrison Bader STL OF 239.4 2.9 4.65 21 64 0.55
Josh Rojas ARI OF,Oth 246.8 1.5 4.36 70 69 0.27
Austin Hays BAL OF 247.4 1.7 5.34 57 37 0.28
Julio Rodríguez SEA OF 250.5 2.6 NA 26 -18 0.60
Ramón Laureano OAK OF 250.7 2.6 5.13 27 46 0.48
Michael Brantley HOU OF 252.3 2.0 4.25 50 73 0.39
Tommy Pham CIN OF 257.9 1.7 4.16 62 75 0.34
Andrew Vaughn CHW OF 263.5 1.2 4.05 78 77 0.21
Riley Greene DET OF 267.3 1.7 NA 60 -24 0.34
Mark Canha NYM OF 282.7 1.7 5.38 59 36 0.35
Lane Thomas WSN OF 285.4 1.1 3.55 88 92 0.16
Mike Yastrzemski SFG OF 291.1 2.2 5.33 44 38 0.38
Wil Myers SDP OF 294.5 1.1 4.66 90 63 0.18
Max Kepler MIN OF 295.3 2.5 5.26 29 41 0.45
Raimel Tapia TOR OF 297.2 0.3 3.61 160 89 0.02
Anthony Santander BAL OF 305.1 1.3 4.15 75 76 0.21
Jeff McNeil NYM OF,Oth 314.1 1.9 3.56 54 91 0.38
Garrett Hampson COL OF,Oth 322.9 0.3 2.72 154 117 0.01
Andrew McCutchen MIL OF 327.4 0.9 4.70 98 61 0.12
Brandon Nimmo NYM OF 331.0 3.0 4.57 18 66 0.58
Connor Joe COL OF,Oth 345.9 0.7 3.25 113 100 0.07
Randal Grichuk COL OF 349.8 0.6 4.30 128 71 0.05
Rafael Ortega CHC OF 363.8 0.9 4.27 105 72 0.11
Tyler Naquin CIN OF 366.3 0.7 5.10 118 49 0.09
LaMonte Wade Jr. SFG OF 373.7 1.0 4.98 92 53 0.13
Nick Senzel CIN OF 390.4 1.0 2.54 93 126 0.15
Adam Frazier SEA OF,Oth 415.1 2.0 4.73 48 60 0.41
Manuel Margot TBR OF 418.2 1.1 3.65 89 88 0.16
Vidal Bruján 0 OF,Oth 422.0 0.8 NA 110 -31 0.10
Brandon Marsh LAA OF 432.3 1.1 2.70 82 120 0.19
Kyle Lewis SEA OF 439.2 1.2 2.65 80 123 0.21
Jorge Mateo BAL OF,Oth 455.6 0.5 2.76 134 114 0.04
Dominic Smith NYM OF,Oth 458.7 0.5 2.51 132 128 0.04
Yoshi Tsutsugo PIT OF,Oth 458.9 0.3 2.69 161 121 0.02
Tony Kemp OAK OF,Oth 461.7 1.6 4.18 68 74 0.28
Hunter Dozier KCR OF,Oth 462.3 0.6 3.34 121 98 0.05
Willie Calhoun TEX OF 470.0 0.2 2.73 173 116 0.00
Josh Lowe TBR OF 472.9 0.3 NA 157 -16 0.00
Darin Ruf SFG OF,Oth 478.1 0.9 3.83 100 81 0.13
Lorenzo Cain MIL OF 480.7 1.5 3.79 71 83 0.26
Victor Robles WSN OF 484.0 1.0 2.53 96 127 0.16
Joc Pederson SFG OF 491.3 0.9 3.81 104 82 0.11
Sam Hilliard COL OF 495.5 0.4 3.78 143 84 0.02
Pavin Smith ARI OF,Oth 497.3 0.7 3.53 114 93 0.06
Clint Frazier CHC OF 499.5 0.3 1.76 151 149 0.01
Seth Brown OAK OF 507.5 0.7 4.64 115 65 0.08
Brian Anderson MIA OF,Oth 510.8 1.9 3.23 52 101 0.28
Chas McCormick HOU OF 511.8 1.1 3.22 83 102 0.20
Jarren Duran 0 OF 512.4 0.4 1.92 138 145 0.03
Bradley Zimmer CLE OF 516.3 0.7 2.98 111 108 0.07
J.D. Davis NYM OF,Oth 524.0 0.9 2.30 102 135 0.09
David Peralta ARI OF 525.8 1.1 3.57 84 90 0.18
Aaron Hicks NYY OF 527.0 1.6 1.93 63 143 0.27
Gavin Sheets CHW OF 527.5 0.8 3.66 107 87 0.09
Dylan Moore SEA OF,Oth 527.8 0.5 1.57 133 154 0.05
Garrett Cooper MIA OF,Oth 532.8 1.1 3.94 85 78 0.16
Michael A. Taylor KCR OF 533.0 1.2 3.35 81 97 0.21
Kole Calhoun TEX OF 534.0 1.1 2.71 87 119 0.17
Jake Fraley CIN OF 537.7 0.8 2.81 108 112 0.10
Tyrone Taylor MIL OF 538.7 1.0 3.04 95 106 0.15
Steven Kwan CLE OF 542.4 0.7 NA 117 -27 0.09
Jurickson Profar SDP OF,Oth 549.6 0.3 2.73 158 115 0.02
Leury García CHW OF 550.7 0.6 2.85 125 110 0.07
Bryan De La Cruz 0 OF 551.7 0.7 2.04 112 141 0.07
Kyle Isbel KCR OF 555.4 0.6 2.55 123 125 0.03
Anthony Alford PIT OF 564.0 0.0 2.68 201 122 -0.02
Cristian Pache OAK OF 567.8 0.8 1.36 106 157 0.10
Justin Upton LAA OF 568.0 0.2 2.72 167 118 0.00
Alek Thomas ARI OF 572.3 0.9 NA 97 -2 0.13
Trevor Larnach MIN OF 573.0 0.2 1.93 172 144 0.00
Chad Pinder OAK OF 574.5 0.5 2.92 130 109 0.03
Matt Vierling PHI OF,Oth 575.2 0.6 2.37 126 131 0.05
Corey Dickerson STL OF 578.0 0.1 2.47 177 129 -0.01
Edward Olivares KCR OF 578.0 0.3 1.18 153 163 0.00
Lars Nootbaar STL OF 578.1 0.2 2.32 168 134 -0.01
Austin Slater SFG OF 578.3 1.0 2.82 91 111 0.14
Jose Siri HOU OF 578.9 0.4 NA 140 -15 0.01
Jon Berti MIA OF,Oth 581.0 0.4 1.11 139 167 0.03
Ben Gamel PIT OF 581.3 0.9 3.45 99 95 0.12
Jace Peterson MIL OF,Oth 583.0 0.3 1.68 156 152 0.01
Leody Taveras 0 OF 583.8 0.6 1.10 124 169 0.06
Josh Naylor CLE OF 584.5 0.5 2.76 135 113 0.03
Harold Ramirez TBR OF 584.7 0.1 1.29 186 158 -0.01
Jackie Bradley Jr. BOS OF 587.3 0.2 1.70 165 151 0.00
Odúbel Herrera PHI OF 587.5 1.0 3.46 94 94 0.14
Cole Tucker PIT OF,Oth 588.0 0.4 1.86 137 146 0.03
Nick Gordon MIN OF 588.3 0.4 1.28 142 159 0.01
Aristides Aquino CIN OF 589.0 0.3 2.34 147 132 0.01
Kevin Kiermaier TBR OF 590.4 1.2 3.21 79 103 0.22
Yadiel Hernandez WSN OF 590.4 0.1 3.09 199 104 -0.01
Matt Beaty SDP OF,Oth 591.1 0.2 2.08 169 139 0.00
Brett Phillips TBR OF 592.3 0.3 1.76 150 147 0.00
Eric Thames OAK OF,Oth 593.2 0.1 NA 183 -9 -0.01
Oscar Mercado CLE OF 593.9 0.6 2.43 127 130 0.04
Kevin Pillar LAD OF 594.3 0.5 2.02 136 142 0.03
Victor Reyes DET OF 594.6 0.4 2.09 146 138 0.01
Jake Meyers HOU OF 595.0 1.1 3.74 86 86 0.20
Jason Heyward CHC OF 595.0 0.9 2.28 103 136 0.11
Stephen Piscotty OAK OF 595.3 -0.2 2.04 243 140 -0.01
Mauricio Dubón SFG OF,Oth 596.5 0.4 1.02 141 173 0.03
Travis Swaggerty 0 OF 596.5 0.4 NA 145 -29 0.03
Khalil Lee 0 OF 596.7 -0.1 NA 235 -19 -0.01
Phil Gosselin 0 OF 597.1 -0.1 0.47 238 200 -0.01
Charlie Culberson 0 OF,Oth 597.2 0.0 0.95 203 174 -0.02
Adam Engel CHW OF 597.6 0.6 3.28 119 99 0.06
Andrew Stevenson WSN OF 597.8 -0.1 1.49 225 156 -0.01
Alex Dickerson ATL OF 598.0 0.2 2.33 163 133 0.00
Miguel Andújar NYY OF 598.0 0.0 0.66 216 185 -0.02
Zach McKinstry 0 OF,Oth 598.0 -0.2 0.91 244 175 -0.01
Brett Gardner 0 OF 598.6 0.5 1.75 129 150 0.04
Michael Hermosillo CHC OF 599.0 0.3 NA 159 -21 0.00
Steven Duggar SFG OF 599.0 0.7 3.08 116 105 0.08
Brent Rooker MIN OF 599.1 0.3 1.56 149 155 0.00
Billy McKinney 0 OF 599.2 0.0 0.60 202 189 -0.02
Billy Hamilton 0 OF 599.3 -0.1 0.50 226 198 -0.01
Daz Cameron 0 OF 599.3 0.1 0.88 179 177 -0.01
David Dahl MIL OF 599.4 0.0 0.26 207 209 -0.02
Yonathan Daza COL OF 599.4 0.0 1.15 222 166 -0.02
Tim Locastro NYY OF 599.8 0.1 0.68 196 184 -0.01
Eli White TEX OF 600.0 0.1 0.84 182 178 -0.01
Harold Castro DET OF,Oth 600.0 -0.1 1.27 230 160 -0.01
Greg Allen PIT OF 600.2 0.3 NA 155 -12 0.01
Max Schrock CIN OF 600.2 0.0 1.17 213 165 -0.02
Jordan Luplow ARI OF 600.3 0.8 2.58 109 124 0.10
Josh VanMeter ARI OF,Oth 600.3 0.2 0.52 166 195 0.00
Nomar Mazara SDP OF 600.3 0.1 1.03 192 171 -0.01
Jose Rojas LAA OF 600.4 -0.2 0.70 241 181 0.00
DJ Stewart BAL OF 600.5 0.5 1.76 131 148 0.02
Ryan Vilade 0 OF 600.5 -0.1 NA 239 -26 -0.01
Brian Goodwin 0 OF 600.6 0.1 1.22 176 161 -0.01
Jake Bauers CIN OF,Oth 600.6 -0.1 0.36 231 205 -0.01
Marwin Gonzalez NYY IF 600.6 0.1 0.64 191 187 -0.01
TJ Friedl 0 OF 600.7 0.1 NA 197 -28 -0.01
Chris Owings 0 IF 600.8 0.0 0.60 204 190 -0.02
Estevan Florial 0 OF 600.8 0.1 NA 184 -10 -0.01
Garrett Stubbs PHI C,Oth 600.8 0.2 NA 164 -11 0.00
Mickey Moniak PHI OF 600.8 0.0 NA 215 -23 -0.02
Shogo Akiyama CIN OF 600.8 0.0 0.63 219 188 -0.02
Adam Haseley CHW OF 600.9 -0.1 NA 224 -1 -0.01
Lewis Brinson 0 OF 600.9 0.0 0.52 211 193 -0.02
Taylor Trammell 0 OF 600.9 0.0 0.47 220 199 -0.02
Jake McCarthy ARI OF 601.0 0.0 2.23 208 137 -0.02
Taylor Ward LAA OF 601.0 0.4 1.57 144 153 0.02
Aaron Altherr 0 OF 999.0 0.1 NA 175 0 -0.01
Adam Eaton 0 OF 999.0 0.2 1.17 162 164 -0.01
Alfonso Rivas CHC OF,Oth 999.0 0.0 NA 200 -3 -0.02
Brennen Davis CHC OF 999.0 0.3 NA 148 -4 0.01
Brock Holt ATL IF 999.0 -0.1 0.52 227 194 -0.02
Christin Stewart BOS OF 999.0 0.0 NA 205 -5 -0.02
Cody Thomas 0 OF 999.0 -0.4 NA 246 -6 0.00
Cooper Hummel ARI C,Oth 999.0 0.3 NA 152 -7 0.01
Daniel Johnson CLE OF 999.0 0.0 0.55 206 191 -0.02
Danny Santana 0 OF,Oth 999.0 0.1 1.02 178 172 -0.01
Delino DeShields MIA OF 999.0 0.1 0.35 180 206 -0.01
Derek Hill DET OF 999.0 0.1 1.20 181 162 -0.01
Dexter Fowler 0 OF 999.0 -0.1 NA 228 -8 -0.02
Gilberto Celestino MIN OF 999.0 0.1 0.23 185 212 -0.01
Guillermo Heredia ATL OF 999.0 -0.1 1.03 229 170 -0.01
Heliot Ramos 0 OF 999.0 0.1 NA 187 -13 -0.01
Jake Cave MIN OF 999.0 -0.1 0.69 232 183 -0.01
Jake Marisnick 0 OF 999.0 0.1 1.10 188 168 -0.01
Jared Oliva 0 OF 999.0 -0.2 NA 240 -14 -0.01
Jarrod Dyson 0 OF 999.0 -0.1 0.70 233 182 -0.01
Josh Palacios 0 OF 999.0 -0.1 NA 234 -17 -0.01
Josh Reddick 0 OF 999.0 -0.2 0.51 242 197 0.00
Juan Lagares 0 OF 999.0 0.1 0.78 189 180 -0.02
Khris Davis 0 OF 999.0 0.0 0.82 209 179 -0.02
Kyle Garlick MIN OF 999.0 0.0 0.64 210 186 -0.02
Luis Barrera 0 OF 999.0 -0.1 NA 236 -20 -0.01
Luke Raley TBR OF 999.0 0.1 0.25 190 211 -0.01
Luke Williams SFG OF 999.0 0.0 0.36 212 204 -0.02
Magneuris Sierra LAA OF 999.0 -0.3 0.51 245 196 0.00
Matt Joyce PHI OF 999.0 -0.1 0.26 237 210 -0.01
Micker Adolfo CHW OF 999.0 0.0 NA 214 -22 -0.02
Pablo Reyes MIL OF,Oth 999.0 0.1 0.44 193 201 -0.01
Rob Refsnyder BOS OF 999.0 0.0 0.41 217 202 -0.02
Roman Quinn 0 OF 999.0 0.0 0.41 218 203 -0.02
Romy Gonzalez CHW OF,Oth 999.0 0.1 NA 194 -25 -0.01
Ryan McKenna BAL OF 999.0 0.1 0.32 195 208 -0.01
Shed Long Jr. BAL OF,Oth 999.0 0.2 0.88 170 176 0.00
Skye Bolt OAK OF 999.0 0.2 0.34 171 207 0.00
Travis Jankowski NYM OF 999.0 0.0 0.54 221 192 -0.02
Tyler Nevin BAL OF,Oth 999.0 0.1 NA 198 -30 -0.01
Yairo Muñoz 0 OF,Oth 999.0 0.2 NA 174 -32 -0.01
Zach Reks 0 OF 999.0 0.0 NA 223 -33 -0.02

C

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Salvador Perez KCR C 32 3.7 6.39 4 1 0.82
J.T. Realmuto PHI C 49 3.8 6.08 3 2 0.86
Will Smith LAD C 53 4.7 5.59 1 3 0.95
Daulton Varsho ARI C,Oth 93 2.2 4.33 9 6 0.37
Yasmani Grandal CHW C 102 4.0 5.19 2 4 0.90
Willson Contreras CHC C 110 2.7 4.71 6 5 0.75
Tyler Stephenson CIN C 137 2.9 4.18 5 7 0.78
Keibert Ruiz WSN C 145 2.2 2.91 11 17 0.65
Mitch Garver TEX C 161 2.4 3.89 8 9 0.70
Christian Vázquez BOS C 202 1.7 2.94 18 16 0.45
Adley Rutschman BAL C 212 2.1 NA 12 0 0.60
Travis d'Arnaud ATL C 226 1.4 2.45 24 24 0.39
Elias Díaz COL C 226 1.3 3.27 25 11 0.35
Alejandro Kirk TOR C 227 1.8 2.71 16 19 0.49
Gary Sánchez MIN C 242 1.1 2.95 33 15 0.24
Sean Murphy OAK C 248 2.5 3.07 7 14 0.72
Mike Zunino TBR C 252 2.0 3.96 14 8 0.58
Omar Narváez MIL C 255 1.7 2.57 19 21 0.47
Joey Bart SFG C 278 0.9 NA 37 -5 0.21
Carson Kelly ARI C 281 1.9 2.69 15 20 0.53
Max Stassi LAA C 301 1.8 3.13 17 13 0.51
Eric Haase DET C 314 0.7 3.15 44 12 0.12
Yadier Molina STL C 324 1.2 2.77 32 18 0.27
Austin Nola SDP C,Oth 380 1.4 1.98 22 31 0.21
James McCann NYM C 383 1.4 2.23 23 26 0.37
Danny Jansen TOR C 400 2.0 3.39 13 10 0.55
Jacob Stallings MIA C 447 2.2 2.19 10 28 0.67
Luis Torrens SEA C 456 0.7 2.24 46 25 0.08
Jorge Alfaro SDP C 465 0.2 1.97 65 32 0.03
Yan Gomes CHC C 466 1.5 2.47 21 23 0.42
MJ Melendez KCR C 466 0.5 NA 56 -8 0.06
Tucker Barnhart DET C 487 1.3 1.90 27 33 0.33
Ryan Jeffers MIN C 493 1.6 2.57 20 22 0.43
Francisco Mejía TBR C 511 1.2 2.10 28 29 0.31
Pedro Severino MIL C 532 0.9 1.59 39 39 0.20
Kyle Higashioka NYY C 544 1.0 1.71 35 38 0.23
Tom Murphy SEA C 545 1.2 1.51 31 40 0.30
Jonah Heim TEX C 554 0.9 1.24 38 44 0.19
Roberto Pérez PIT C 556 1.3 2.22 26 27 0.34
Martín Maldonado HOU C 568 1.2 2.03 30 30 0.26
Cal Raleigh SEA C 574 0.8 0.54 41 59 0.15
Manny Piña ATL C 576 1.2 1.83 29 35 0.28
Kevin Plawecki BOS C 584 0.7 1.13 45 48 0.13
Austin Hedges CLE C 586 0.5 1.80 52 36 0.08
Victor Caratini SDP C 586 0.7 1.04 48 49 0.11
Dom Nuñez COL C 589 0.5 1.72 53 37 0.07
Curt Casali SFG C 592 0.9 1.22 36 45 0.18
Riley Adams WSN C 594 0.8 1.41 43 41 0.15
Robinson Chirinos BAL C 594 0.7 1.86 47 34 0.14
Austin Barnes LAD C 595 0.8 1.31 40 42 0.16
William Contreras ATL C 595 0.2 0.42 70 64 0.02
Nick Fortes 0 C 597 0.3 NA 61 -9 0.02
Seby Zavala CHW C 598 -0.1 0.95 81 51 0.00
Zack Collins CHW C 599 0.6 0.74 51 55 0.09
Kurt Suzuki LAA C 599 0.2 0.81 66 53 0.02
Jose Trevino TEX C 599 0.3 0.81 60 54 0.04
Andrew Knizner STL C 599 0.6 0.51 49 60 0.09
Austin Allen OAK C 600 0.6 NA 50 -1 0.10
Reese McGuire TOR C 600 0.2 0.42 68 63 0.02
Jason Castro HOU C 600 0.8 1.28 42 43 0.17
Jacob Nottingham BAL C 600 0.1 NA 73 -4 0.01
Stephen Vogt OAK C 600 0.2 0.98 69 50 0.03
Willians Astudillo MIA IF 600 0.0 0.23 80 67 -0.01
Cam Gallagher KCR C 601 0.3 0.46 57 61 0.05
Aramis Garcia CIN C 601 0.0 0.35 78 65 0.00
Garrett Stubbs PHI C,Oth 601 0.2 NA 64 -3 0.00
Jake Rogers DET C 601 0.3 0.64 59 56 0.04
Andrew Knapp CIN C 601 0.0 0.33 77 66 0.00
Tomás Nido NYM C 601 0.3 1.19 62 46 0.03
Wilson Ramos 0 C 601 0.3 0.58 63 58 0.05
Austin Romine 0 C 999 0.1 0.22 71 68 0.01
Ben Rortvedt NYY C 999 1.0 1.13 34 47 0.22
Chance Sisco 0 C 999 0.1 0.08 72 70 0.01
Cooper Hummel ARI C,Oth 999 0.3 NA 58 -2 0.01
Luis Campusano SDP C 999 0.5 NA 54 -6 0.07
Luke Maile CLE C 999 0.1 NA 74 -7 0.00
Michael Perez PIT C 999 0.5 0.82 55 52 0.06
Patrick Mazeika 0 C 999 0.1 0.15 75 69 0.01
Payton Henry MIA C 999 0.2 NA 67 -10 0.02
Sandy León CLE C 999 0.0 0.44 79 62 0.00
Tres Barrera WSN C 999 0.1 0.59 76 57 0.02

DH

WAR Ranks are for the position, and Pos_Rank is based on Model Score

Name Team Position ADP WAR Model_Score WAR_Rank Position_Rank Pos_Scarcity
Shohei Ohtani LAA DH 8.9 4.0 7.93 2 1 0.73
Yordan Alvarez HOU DH 25.9 4.1 6.69 1 2 0.86
J.D. Martinez BOS OF 88.5 2.0 6.35 5 3 0.40
Giancarlo Stanton NYY OF 95.8 2.3 5.45 4 6 0.51
Franmil Reyes CLE OF 121.8 1.9 6.18 7 4 0.32
Austin Meadows TBR OF 149.0 1.5 5.32 9 7 0.25
Nelson Cruz WSN OF 167.6 1.4 5.75 10 5 0.16
Jorge Soler MIA OF 192.3 1.6 4.94 8 8 0.25
Trey Mancini BAL OF,Oth 208.7 1.4 4.78 11 9 0.21
Michael Brantley HOU OF 252.3 2.0 4.25 6 10 0.39
Rowdy Tellez MIL 1B 355.5 0.8 3.02 13 12 0.12
Luis Torrens SEA C 455.6 0.7 2.24 14 17 0.08
Yoshi Tsutsugo PIT OF,Oth 458.9 0.3 2.69 19 15 0.02
Willie Calhoun TEX OF 470.0 0.2 2.73 23 14 0.00
Gavin Sheets CHW OF 527.5 0.8 3.66 12 11 0.09
Miguel Cabrera DET DH 550.7 -0.4 2.74 27 13 0.00
Seth Beer ARI 1B 553.5 0.3 NA 18 -4 0.01
Daniel Vogelbach PIT 1B 587.6 0.5 2.16 15 18 0.04
Jed Lowrie OAK IF 588.3 0.4 2.58 16 16 0.04
Nick Fortes 0 C 596.7 0.3 NA 17 -2 0.02
Jake Burger CHW 3B 597.5 0.2 NA 21 -1 0.01
Renato Núñez 0 1B 599.6 0.1 0.60 24 21 -0.01
Mitch Moreland 0 1B 600.9 0.2 1.28 22 19 0.00
Curtis Terry MIN DH 999.0 0.2 NA 20 0 -0.01
Khris Davis 0 OF 999.0 0.0 0.82 26 20 -0.02
Seiya Suzuki CHC DH 999.0 2.6 NA 3 -3 0.64
Taylor Jones HOU 1B 999.0 0.1 0.38 25 22 -0.01
LS0tDQp0aXRsZTogIjIwMjIgSGl0dGluZyA1eDUgUHJvamVjdGlvbnMiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOg0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KICAgIGhpZ2hsaWdodDogdGFuZ28NCiAgICBmaWdfY2FwdGlvbjogdHJ1ZQ0KICAgIGRmX3ByaW50OiBwYWdlZA0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSkNCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gJ0M6L1VzZXJzL0FkbWluL0RvY3VtZW50cy9MZWFybmluZyBQeXRob24gRm9sZGVyMS9QeXRob24gRXNzZW5jZSBUcmFpbmluZy9GYW50YXN5LUJhc2ViYWxsL0RhdGEnKQ0Kb3B0aW9ucyhrbml0ci50YWJsZS5mb3JtYXQgPSAiaHRtbCIpIA0Kb3B0aW9ucyhkaWdpdHM9MikNCm9wdGlvbnMoc2NpcGVuID0gMTAwKQ0KYGBgDQoNCiMjIyMgW0dvIGJhY2sgdG8gdGhlIG1haW4gcGFnZV0oaHR0cHM6Ly9kaXNzaXBhdGlvbi5naXRodWIuaW8vRGFyc2hEU1BvcnRmb2xpby8pDQoNCg0KQWxsIGRhdGEgaXMgZnJvbSBbRmFuR3JhcGhzLl0oaHR0cHM6Ly93d3cuZmFuZ3JhcGhzLmNvbS8pIEkgaGF2ZSBubyBhZmZpbGlhdGlvbiB3aXRoIEZhbkdyYXBocywgYnV0IHBsZWFzZSBjb25zaWRlciBjb250cmlidXRpbmcgdG8gdGhlaXIgW3dlYnNpdGVdKGh0dHBzOi8vcGx1cy5mYW5ncmFwaHMuY29tL3Nob3AvKSBpZiB5b3UgZm91bmQgdGhpcyBwcm9qZWN0IGluZm9ybWF0aXZlLiAgICANCg0KUG9zaXRpb25hbCBTY2FyY2l0eSBpcyBkZXRlcm1pbmVkIGJ5IFtBVEMgV0FSIFByb2plY3Rpb25zXShodHRwczovL3d3dy5mYW5ncmFwaHMuY29tL3Byb2plY3Rpb25zLmFzcHg/cG9zPWFsbCZzdGF0cz1iYXQmdHlwZT1hdGMmdGVhbT0wJmxnPWFsbCZwbGF5ZXJzPTApIGZyb20gMy0zMS0yMDIyLiAgDQoNCioqKiAgICANCg0KIyAqKkhpdHRlcnMqKiB7LnRhYnNldCAudGFic2V0LXBpbGxzfSAgIA0KUGxheWVycyB0aGF0IGhhdmUgYW4gYE5BYCBmb3IgYE1vZGVsX1Njb3JlYCBkaWQgbm90IHBsYXkgaW4gdGhlIE1MQiBpbiAyMDIxIGFuZCBoYXZlIGEgbmVnYXRpdmUgb3IgemVybyBQb3NpdGlvbiBSYW5rLiBUaGUgaGl0dHRpbmcgbW9kZWwgaGFkIGEgUi1TcXVhcmVkIG9mIDAuOTEuIA0KYGBge3J9DQojIyMgRmlsbCBpbiBjb2RlDQpgYGANCg0KDQoqKiogICAgDQoNCiMjIEhpdHRlcnMgYnkgUG9zaXRpb24gey50YWJzZXQgLnRhYnNldC1waWxsc30NCk15IG5vbi1ub3JtYWxpemVkIG1vZGVsIHNjb3JlcyBmb3IgYSBwbGF5ZXIgYXJlIGBNb2RlbF9TY29yZWAuICANCg0KIyMjIE92ZXJhbGwNCg0KYGBge3J9DQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MgPQ0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9Ub3RhbCAlPiUgDQogIG11dGF0ZSgNCiAgICBtYXhfcHJlZHNjb3JlPSBtYXgoQWRqUHJlZGljdF9TY29yZV9yYXcsbmEucm0gPSBUKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlID0gaWZlbHNlIChpcy5uYShBZGpQcmVkaWN0X1Njb3JlX3JhdyksTkEsQWRqUHJlZGljdF9TY29yZV9yYXcpLA0KICAgIFdBUl9yYW5rID0gb3JkZXIob3JkZXIocmFuayhXQVIsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSksDQogICAgQWRqUHJlZGljdF9TY29yZV9SYW5rID0gb3JkZXIob3JkZXIocmFuayhBZGpQcmVkaWN0X1Njb3JlLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLXN1bShpcy5uYShBZGpQcmVkaWN0X1Njb3JlKSksDQogICAgICAgIFJhbmtzX0Fib3ZlX0FEUCA9IEFEUCAtIEFkalByZWRpY3RfU2NvcmVfUmFuaw0KICApICU+JQ0KZmlsdGVyKFBBID4gMSkgJT4lICAgDQogIHNlbGVjdCAoTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCmZ0X2R0IDwtIEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPU1sxOm5yb3coRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKSwgMTpuY29sKEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyldICU+JSANCiMlPiUgDQojZmlsdGVyKEFkalByZWRpY3RfU2NvcmVfUmFuaz4wKQ0KIGFycmFuZ2UoKEFEUCkpDQoNCmZ0X2R0JEFEUCA8LSBjb2xvcl90aWxlKCJ3aGl0ZSIsICJyZWQiKShmdF9kdCRBRFApDQoNCmZ0X2R0JFdBUiA8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JFdBUikNCg0KDQpmdF9kdCRBZGpQcmVkaWN0X1Njb3JlPC0gIHJvdW5kKChmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKSwyKQ0KDQpmdF9kdCRNb2RlbF9TY29yZTwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZSkNCg0KZnRfZHQkV0FSX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRXQVJfcmFuaykNCg0KZnRfZHQkSGl0dGluZ19SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZV9SYW5rKSANCg0KDQpmdF9kdCRSYW5rc19BYm92ZV9BRFAgPC0gDQogIGlmZWxzZSgNCiAgZnRfZHQkUmFua3NfQWJvdmVfQURQIDwgMCwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAicmVkIiwgaXRhbGljID0gVCksDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gImdyZWVuIiwgaXRhbGljID0gVCkNCikNCg0KZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSA8LSByb3VuZChmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5LCAyKQ0KDQpmdF9kdCRQb3NfU2NhcmNpdHkgPC0gY29sb3JfdGlsZSgicmVkIiwid2hpdGUiKShmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQojTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkNCg0KZnRfZHQyIDwtIGZ0X2R0W2MoIk5hbWUiLCJUZWFtIiwiUG9zaXRpb24iLCJBRFAiLCAiV0FSIiwgIk1vZGVsX1Njb3JlIiwgIldBUl9SYW5rIiwiSGl0dGluZ19SYW5rIiwiUG9zX1NjYXJjaXR5IildDQoNCg0KdGFibGVfZXhwb3J0ID0gDQprYmwoZnRfZHQyLCBlc2NhcGUgPSBGKSAlPiUgDQoga2FibGVfbWF0ZXJpYWwoYygic3RyaXBlZCIsICJob3ZlciIsImNvbmRlbnNlZCIsInJlc3BvbnNpdmUiKSxmdWxsX3dpZHRoID0gRixmaXhlZF90aGVhZCA9IFQpICU+JSAgIGNvbHVtbl9zcGVjKDYsIHdpZHRoID0gIjNjbSIpIyAlPiUNCiAjIGFkZF9oZWFkZXJfYWJvdmUoYygiICIsICJTY29yZXMiID0gNSwgIlJhbmtzIiA9IDMsIiAiKSkNCg0KdGFibGVfZXhwb3J0ICANCg0KYGBgDQoNCg0KIyMjIDFCDQpXQVIgUmFua3MgYXJlIGZvciB0aGUgcG9zaXRpb24sIGFuZCBQb3NfUmFuayBpcyBiYXNlZCBvbiBNb2RlbCBTY29yZSAgLCBhbmQgUG9zX1JhbmsgaXMgYmFzZWQgb24gTW9kZWwgU2NvcmUgICAgDQpgYGB7cn0NCg0KDQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MgPQ0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9Ub3RhbCAlPiUNCmZpbHRlcihQb3NpdGlvbjFiID09IDEpICU+JSANCiAgbXV0YXRlKA0KICAgIG1heF9wcmVkc2NvcmU9IG1heChBZGpQcmVkaWN0X1Njb3JlX3JhdyxuYS5ybSA9IFQpLA0KICAgIEFkalByZWRpY3RfU2NvcmUgPSBpZmVsc2UgKGlzLm5hKEFkalByZWRpY3RfU2NvcmVfcmF3KSxOQSxBZGpQcmVkaWN0X1Njb3JlX3JhdyksDQogICAgV0FSX3JhbmsgPSBvcmRlcihvcmRlcihyYW5rKFdBUix0aWVzLm1ldGhvZCA9ICdhdmVyYWdlJyksZGVjcmVhc2luZyA9IFRSVUUpKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlX1JhbmsgPSBvcmRlcihvcmRlcihyYW5rKEFkalByZWRpY3RfU2NvcmUsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSktc3VtKGlzLm5hKEFkalByZWRpY3RfU2NvcmUpKSwNCiAgICAgICAgUmFua3NfQWJvdmVfQURQID0gQURQIC0gQWRqUHJlZGljdF9TY29yZV9SYW5rDQogICkgJT4lICAgDQogIHNlbGVjdCAoTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCg0KZnRfZHQgPC0gRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TWzE6bnJvdyhGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MpLCAxOm5jb2woRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKV0gJT4lIA0KIyU+JSANCiNmaWx0ZXIoQWRqUHJlZGljdF9TY29yZV9SYW5rPjApDQogYXJyYW5nZSgoQURQKSkNCg0KZnRfZHQkQURQIDwtIGNvbG9yX3RpbGUoIndoaXRlIiwgInJlZCIpKGZ0X2R0JEFEUCkNCg0KZnRfZHQkV0FSIDwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkV0FSKQ0KDQoNCmZ0X2R0JEFkalByZWRpY3RfU2NvcmU8LSAgcm91bmQoKGZ0X2R0JEFkalByZWRpY3RfU2NvcmUpLDIpDQoNCmZ0X2R0JE1vZGVsX1Njb3JlPC0gY29sb3JfYmFyKCJsaWdodGJsdWUiKShmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKQ0KDQpmdF9kdCRXQVJfUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JFdBUl9yYW5rKQ0KDQpmdF9kdCRQb3NpdGlvbl9SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZV9SYW5rKSANCg0KZnRfZHQkUmFua3NfQWJvdmVfQURQIDwtIA0KICBpZmVsc2UoDQogIGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8IDAsDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gInJlZCIsIGl0YWxpYyA9IFQpLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJncmVlbiIsIGl0YWxpYyA9IFQpDQopDQoNCmZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkgPC0gcm91bmQoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSwgMikNCg0KZnRfZHQkUG9zX1NjYXJjaXR5IDwtIGNvbG9yX3RpbGUoInJlZCIsIndoaXRlIikoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KI05hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5DQoNCmZ0X2R0MiA8LSBmdF9kdFtjKCJOYW1lIiwiVGVhbSIsIlBvc2l0aW9uIiwiQURQIiwgIldBUiIsICJNb2RlbF9TY29yZSIsICJXQVJfUmFuayIsIlBvc2l0aW9uX1JhbmsiLCJQb3NfU2NhcmNpdHkiKV0NCg0KDQp0YWJsZV9leHBvcnQgPSANCmtibChmdF9kdDIsIGVzY2FwZSA9IEYpICU+JSANCiBrYWJsZV9tYXRlcmlhbChjKCJzdHJpcGVkIiwgImhvdmVyIiwiY29uZGVuc2VkIiwicmVzcG9uc2l2ZSIpLGZ1bGxfd2lkdGggPSBGLGZpeGVkX3RoZWFkID0gVCkgJT4lICAgY29sdW1uX3NwZWMoNiwgd2lkdGggPSAiM2NtIikjICU+JQ0KICMgYWRkX2hlYWRlcl9hYm92ZShjKCIgIiwgIlNjb3JlcyIgPSA1LCAiUmFua3MiID0gMywiICIpKQ0KDQp0YWJsZV9leHBvcnQgIA0KYGBgDQoNCg0KIyMjIDJCICAgIA0KV0FSIFJhbmtzIGFyZSBmb3IgdGhlIHBvc2l0aW9uLCBhbmQgUG9zX1JhbmsgaXMgYmFzZWQgb24gTW9kZWwgU2NvcmUgICANCmBgYHtyfQ0KDQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MgPQ0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9Ub3RhbCAlPiUNCmZpbHRlcihQb3NpdGlvbjJiID09IDEpICU+JSANCiAgbXV0YXRlKA0KICAgIG1heF9wcmVkc2NvcmU9IG1heChBZGpQcmVkaWN0X1Njb3JlX3JhdyxuYS5ybSA9IFQpLA0KICAgIEFkalByZWRpY3RfU2NvcmUgPSBpZmVsc2UgKGlzLm5hKEFkalByZWRpY3RfU2NvcmVfcmF3KSxOQSxBZGpQcmVkaWN0X1Njb3JlX3JhdyksDQogICAgV0FSX3JhbmsgPSBvcmRlcihvcmRlcihyYW5rKFdBUix0aWVzLm1ldGhvZCA9ICdhdmVyYWdlJyksZGVjcmVhc2luZyA9IFRSVUUpKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlX1JhbmsgPSBvcmRlcihvcmRlcihyYW5rKEFkalByZWRpY3RfU2NvcmUsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSktc3VtKGlzLm5hKEFkalByZWRpY3RfU2NvcmUpKSwNCiAgICAgICAgUmFua3NfQWJvdmVfQURQID0gQURQIC0gQWRqUHJlZGljdF9TY29yZV9SYW5rDQogICkgJT4lICAgDQogIHNlbGVjdCAoTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCg0KZnRfZHQgPC0gRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TWzE6bnJvdyhGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MpLCAxOm5jb2woRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKV0gJT4lIA0KIyU+JSANCiNmaWx0ZXIoQWRqUHJlZGljdF9TY29yZV9SYW5rPjApDQogYXJyYW5nZSgoQURQKSkNCg0KZnRfZHQkQURQIDwtIGNvbG9yX3RpbGUoIndoaXRlIiwgInJlZCIpKGZ0X2R0JEFEUCkNCg0KZnRfZHQkV0FSIDwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkV0FSKQ0KDQoNCmZ0X2R0JEFkalByZWRpY3RfU2NvcmU8LSAgcm91bmQoKGZ0X2R0JEFkalByZWRpY3RfU2NvcmUpLDIpDQoNCmZ0X2R0JE1vZGVsX1Njb3JlPC0gY29sb3JfYmFyKCJsaWdodGJsdWUiKShmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKQ0KDQpmdF9kdCRXQVJfUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JFdBUl9yYW5rKQ0KDQpmdF9kdCRQb3NpdGlvbl9SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZV9SYW5rKSANCg0KZnRfZHQkUmFua3NfQWJvdmVfQURQIDwtIA0KICBpZmVsc2UoDQogIGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8IDAsDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gInJlZCIsIGl0YWxpYyA9IFQpLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJncmVlbiIsIGl0YWxpYyA9IFQpDQopDQoNCmZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkgPC0gcm91bmQoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSwgMikNCg0KZnRfZHQkUG9zX1NjYXJjaXR5IDwtIGNvbG9yX3RpbGUoInJlZCIsIndoaXRlIikoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KI05hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5DQoNCmZ0X2R0MiA8LSBmdF9kdFtjKCJOYW1lIiwiVGVhbSIsIlBvc2l0aW9uIiwiQURQIiwgIldBUiIsICJNb2RlbF9TY29yZSIsICJXQVJfUmFuayIsIlBvc2l0aW9uX1JhbmsiLCJQb3NfU2NhcmNpdHkiKV0NCg0KDQp0YWJsZV9leHBvcnQgPSANCmtibChmdF9kdDIsIGVzY2FwZSA9IEYpICU+JSANCiBrYWJsZV9tYXRlcmlhbChjKCJzdHJpcGVkIiwgImhvdmVyIiwiY29uZGVuc2VkIiwicmVzcG9uc2l2ZSIpLGZ1bGxfd2lkdGggPSBGLGZpeGVkX3RoZWFkID0gVCkgJT4lICAgY29sdW1uX3NwZWMoNiwgd2lkdGggPSAiM2NtIikjICU+JQ0KICMgYWRkX2hlYWRlcl9hYm92ZShjKCIgIiwgIlNjb3JlcyIgPSA1LCAiUmFua3MiID0gMywiICIpKQ0KDQp0YWJsZV9leHBvcnQgIA0KYGBgDQoNCiMjIyAzQiAgICANCldBUiBSYW5rcyBhcmUgZm9yIHRoZSBwb3NpdGlvbiwgYW5kIFBvc19SYW5rIGlzIGJhc2VkIG9uIE1vZGVsIFNjb3JlICAgICAgDQpgYGB7cn0NCg0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TID0NCkZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfVG90YWwgJT4lDQpmaWx0ZXIoUG9zaXRpb24zYiA9PSAxKSAlPiUgDQogIG11dGF0ZSgNCiAgICBtYXhfcHJlZHNjb3JlPSBtYXgoQWRqUHJlZGljdF9TY29yZV9yYXcsbmEucm0gPSBUKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlID0gaWZlbHNlIChpcy5uYShBZGpQcmVkaWN0X1Njb3JlX3JhdyksTkEsQWRqUHJlZGljdF9TY29yZV9yYXcpLA0KICAgIFdBUl9yYW5rID0gb3JkZXIob3JkZXIocmFuayhXQVIsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSksDQogICAgQWRqUHJlZGljdF9TY29yZV9SYW5rID0gb3JkZXIob3JkZXIocmFuayhBZGpQcmVkaWN0X1Njb3JlLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLXN1bShpcy5uYShBZGpQcmVkaWN0X1Njb3JlKSksDQogICAgICAgIFJhbmtzX0Fib3ZlX0FEUCA9IEFEUCAtIEFkalByZWRpY3RfU2NvcmVfUmFuaw0KICApICU+JSAgIA0KICBzZWxlY3QgKE5hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQoNCmZ0X2R0IDwtIEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPU1sxOm5yb3coRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKSwgMTpuY29sKEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyldICU+JSANCiMlPiUgDQojZmlsdGVyKEFkalByZWRpY3RfU2NvcmVfUmFuaz4wKQ0KIGFycmFuZ2UoKEFEUCkpDQoNCmZ0X2R0JEFEUCA8LSBjb2xvcl90aWxlKCJ3aGl0ZSIsICJyZWQiKShmdF9kdCRBRFApDQoNCmZ0X2R0JFdBUiA8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JFdBUikNCg0KDQpmdF9kdCRBZGpQcmVkaWN0X1Njb3JlPC0gIHJvdW5kKChmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKSwyKQ0KDQpmdF9kdCRNb2RlbF9TY29yZTwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZSkNCg0KZnRfZHQkV0FSX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRXQVJfcmFuaykNCg0KZnRfZHQkUG9zaXRpb25fUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmVfUmFuaykgDQoNCmZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8LSANCiAgaWZlbHNlKA0KICBmdF9kdCRSYW5rc19BYm92ZV9BRFAgPCAwLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJyZWQiLCBpdGFsaWMgPSBUKSwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAiZ3JlZW4iLCBpdGFsaWMgPSBUKQ0KKQ0KDQpmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5IDwtIHJvdW5kKGZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHksIDIpDQoNCmZ0X2R0JFBvc19TY2FyY2l0eSA8LSBjb2xvcl90aWxlKCJyZWQiLCJ3aGl0ZSIpKGZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCiNOYW1lLFRlYW0sUG9zaXRpb24sQURQLFdBUiwgV0FSX3JhbmssQWRqUHJlZGljdF9TY29yZSAsQWRqUHJlZGljdF9TY29yZV9SYW5rLFJhbmtzX0Fib3ZlX0FEUCwgUG9zaXRpb25hbF9TY2FyY2l0eQ0KDQpmdF9kdDIgPC0gZnRfZHRbYygiTmFtZSIsIlRlYW0iLCJQb3NpdGlvbiIsIkFEUCIsICJXQVIiLCAiTW9kZWxfU2NvcmUiLCAiV0FSX1JhbmsiLCJQb3NpdGlvbl9SYW5rIiwiUG9zX1NjYXJjaXR5IildDQoNCg0KdGFibGVfZXhwb3J0ID0gDQprYmwoZnRfZHQyLCBlc2NhcGUgPSBGKSAlPiUgDQoga2FibGVfbWF0ZXJpYWwoYygic3RyaXBlZCIsICJob3ZlciIsImNvbmRlbnNlZCIsInJlc3BvbnNpdmUiKSxmdWxsX3dpZHRoID0gRixmaXhlZF90aGVhZCA9IFQpICU+JSAgIGNvbHVtbl9zcGVjKDYsIHdpZHRoID0gIjNjbSIpIyAlPiUNCiAjIGFkZF9oZWFkZXJfYWJvdmUoYygiICIsICJTY29yZXMiID0gNSwgIlJhbmtzIiA9IDMsIiAiKSkNCg0KdGFibGVfZXhwb3J0ICANCmBgYA0KDQojIyMgU1MgIA0KV0FSIFJhbmtzIGFyZSBmb3IgdGhlIHBvc2l0aW9uLCBhbmQgUG9zX1JhbmsgaXMgYmFzZWQgb24gTW9kZWwgU2NvcmUgICAgDQpgYGB7cn0NCg0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TID0NCkZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfVG90YWwgJT4lDQpmaWx0ZXIoUG9zaXRpb25TUyA9PSAxKSAlPiUgDQogIG11dGF0ZSgNCiAgICBtYXhfcHJlZHNjb3JlPSBtYXgoQWRqUHJlZGljdF9TY29yZV9yYXcsbmEucm0gPSBUKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlID0gaWZlbHNlIChpcy5uYShBZGpQcmVkaWN0X1Njb3JlX3JhdyksTkEsQWRqUHJlZGljdF9TY29yZV9yYXcpLA0KICAgIFdBUl9yYW5rID0gb3JkZXIob3JkZXIocmFuayhXQVIsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSksDQogICAgQWRqUHJlZGljdF9TY29yZV9SYW5rID0gb3JkZXIob3JkZXIocmFuayhBZGpQcmVkaWN0X1Njb3JlLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLXN1bShpcy5uYShBZGpQcmVkaWN0X1Njb3JlKSksDQogICAgICAgIFJhbmtzX0Fib3ZlX0FEUCA9IEFEUCAtIEFkalByZWRpY3RfU2NvcmVfUmFuaw0KICApICU+JSAgIA0KICBzZWxlY3QgKE5hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQoNCmZ0X2R0IDwtIEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPU1sxOm5yb3coRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKSwgMTpuY29sKEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyldICU+JSANCiMlPiUgDQojZmlsdGVyKEFkalByZWRpY3RfU2NvcmVfUmFuaz4wKQ0KIGFycmFuZ2UoKEFEUCkpDQoNCmZ0X2R0JEFEUCA8LSBjb2xvcl90aWxlKCJ3aGl0ZSIsICJyZWQiKShmdF9kdCRBRFApDQoNCmZ0X2R0JFdBUiA8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JFdBUikNCg0KDQpmdF9kdCRBZGpQcmVkaWN0X1Njb3JlPC0gIHJvdW5kKChmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKSwyKQ0KDQpmdF9kdCRNb2RlbF9TY29yZTwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZSkNCg0KZnRfZHQkV0FSX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRXQVJfcmFuaykNCg0KZnRfZHQkUG9zaXRpb25fUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmVfUmFuaykgDQoNCmZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8LSANCiAgaWZlbHNlKA0KICBmdF9kdCRSYW5rc19BYm92ZV9BRFAgPCAwLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJyZWQiLCBpdGFsaWMgPSBUKSwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAiZ3JlZW4iLCBpdGFsaWMgPSBUKQ0KKQ0KDQpmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5IDwtIHJvdW5kKGZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHksIDIpDQoNCmZ0X2R0JFBvc19TY2FyY2l0eSA8LSBjb2xvcl90aWxlKCJyZWQiLCJ3aGl0ZSIpKGZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCiNOYW1lLFRlYW0sUG9zaXRpb24sQURQLFdBUiwgV0FSX3JhbmssQWRqUHJlZGljdF9TY29yZSAsQWRqUHJlZGljdF9TY29yZV9SYW5rLFJhbmtzX0Fib3ZlX0FEUCwgUG9zaXRpb25hbF9TY2FyY2l0eQ0KDQpmdF9kdDIgPC0gZnRfZHRbYygiTmFtZSIsIlRlYW0iLCJQb3NpdGlvbiIsIkFEUCIsICJXQVIiLCAiTW9kZWxfU2NvcmUiLCAiV0FSX1JhbmsiLCJQb3NpdGlvbl9SYW5rIiwiUG9zX1NjYXJjaXR5IildDQoNCg0KdGFibGVfZXhwb3J0ID0gDQprYmwoZnRfZHQyLCBlc2NhcGUgPSBGKSAlPiUgDQoga2FibGVfbWF0ZXJpYWwoYygic3RyaXBlZCIsICJob3ZlciIsImNvbmRlbnNlZCIsInJlc3BvbnNpdmUiKSxmdWxsX3dpZHRoID0gRixmaXhlZF90aGVhZCA9IFQpICU+JSAgIGNvbHVtbl9zcGVjKDYsIHdpZHRoID0gIjNjbSIpIyAlPiUNCiAjIGFkZF9oZWFkZXJfYWJvdmUoYygiICIsICJTY29yZXMiID0gNSwgIlJhbmtzIiA9IDMsIiAiKSkNCg0KdGFibGVfZXhwb3J0ICAgDQpgYGANCg0KIyMjIExGICANCldBUiBSYW5rcyBhcmUgZm9yIHRoZSBwb3NpdGlvbiwgYW5kIFBvc19SYW5rIGlzIGJhc2VkIG9uIE1vZGVsIFNjb3JlICAgICAgDQpgYGB7cn0NCg0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TID0NCkZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfVG90YWwgJT4lDQpmaWx0ZXIoUG9zaXRpb25MRiA9PSAxKSAlPiUgDQogIG11dGF0ZSgNCiAgICBtYXhfcHJlZHNjb3JlPSBtYXgoQWRqUHJlZGljdF9TY29yZV9yYXcsbmEucm0gPSBUKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlID0gaWZlbHNlIChpcy5uYShBZGpQcmVkaWN0X1Njb3JlX3JhdyksTkEsQWRqUHJlZGljdF9TY29yZV9yYXcpLA0KICAgIFdBUl9yYW5rID0gb3JkZXIob3JkZXIocmFuayhXQVIsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSksDQogICAgQWRqUHJlZGljdF9TY29yZV9SYW5rID0gb3JkZXIob3JkZXIocmFuayhBZGpQcmVkaWN0X1Njb3JlLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLXN1bShpcy5uYShBZGpQcmVkaWN0X1Njb3JlKSksDQogICAgICAgIFJhbmtzX0Fib3ZlX0FEUCA9IEFEUCAtIEFkalByZWRpY3RfU2NvcmVfUmFuaw0KICApICU+JSAgIA0KICBzZWxlY3QgKE5hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQoNCmZ0X2R0IDwtIEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPU1sxOm5yb3coRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKSwgMTpuY29sKEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyldICU+JSANCiMlPiUgDQojZmlsdGVyKEFkalByZWRpY3RfU2NvcmVfUmFuaz4wKQ0KIGFycmFuZ2UoKEFEUCkpDQoNCmZ0X2R0JEFEUCA8LSBjb2xvcl90aWxlKCJ3aGl0ZSIsICJyZWQiKShmdF9kdCRBRFApDQoNCmZ0X2R0JFdBUiA8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JFdBUikNCg0KDQpmdF9kdCRBZGpQcmVkaWN0X1Njb3JlPC0gIHJvdW5kKChmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKSwyKQ0KDQpmdF9kdCRNb2RlbF9TY29yZTwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZSkNCg0KZnRfZHQkV0FSX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRXQVJfcmFuaykNCg0KZnRfZHQkUG9zaXRpb25fUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmVfUmFuaykgDQoNCmZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8LSANCiAgaWZlbHNlKA0KICBmdF9kdCRSYW5rc19BYm92ZV9BRFAgPCAwLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJyZWQiLCBpdGFsaWMgPSBUKSwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAiZ3JlZW4iLCBpdGFsaWMgPSBUKQ0KKQ0KDQpmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5IDwtIHJvdW5kKGZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHksIDIpDQoNCmZ0X2R0JFBvc19TY2FyY2l0eSA8LSBjb2xvcl90aWxlKCJyZWQiLCJ3aGl0ZSIpKGZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCiNOYW1lLFRlYW0sUG9zaXRpb24sQURQLFdBUiwgV0FSX3JhbmssQWRqUHJlZGljdF9TY29yZSAsQWRqUHJlZGljdF9TY29yZV9SYW5rLFJhbmtzX0Fib3ZlX0FEUCwgUG9zaXRpb25hbF9TY2FyY2l0eQ0KDQpmdF9kdDIgPC0gZnRfZHRbYygiTmFtZSIsIlRlYW0iLCJQb3NpdGlvbiIsIkFEUCIsICJXQVIiLCAiTW9kZWxfU2NvcmUiLCAiV0FSX1JhbmsiLCJQb3NpdGlvbl9SYW5rIiwiUG9zX1NjYXJjaXR5IildDQoNCg0KdGFibGVfZXhwb3J0ID0gDQprYmwoZnRfZHQyLCBlc2NhcGUgPSBGKSAlPiUgDQoga2FibGVfbWF0ZXJpYWwoYygic3RyaXBlZCIsICJob3ZlciIsImNvbmRlbnNlZCIsInJlc3BvbnNpdmUiKSxmdWxsX3dpZHRoID0gRixmaXhlZF90aGVhZCA9IFQpICU+JSAgIGNvbHVtbl9zcGVjKDYsIHdpZHRoID0gIjNjbSIpIyAlPiUNCiAjIGFkZF9oZWFkZXJfYWJvdmUoYygiICIsICJTY29yZXMiID0gNSwgIlJhbmtzIiA9IDMsIiAiKSkNCg0KdGFibGVfZXhwb3J0ICANCg0KYGBgDQoNCiMjIyBSRiAgDQpXQVIgUmFua3MgYXJlIGZvciB0aGUgcG9zaXRpb24sIGFuZCBQb3NfUmFuayBpcyBiYXNlZCBvbiBNb2RlbCBTY29yZSAgICAgIA0KYGBge3J9DQoNCkZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyA9DQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX1RvdGFsICU+JQ0KZmlsdGVyKFBvc2l0aW9uUkYgPT0gMSkgJT4lIA0KICBtdXRhdGUoDQogICAgbWF4X3ByZWRzY29yZT0gbWF4KEFkalByZWRpY3RfU2NvcmVfcmF3LG5hLnJtID0gVCksDQogICAgQWRqUHJlZGljdF9TY29yZSA9IGlmZWxzZSAoaXMubmEoQWRqUHJlZGljdF9TY29yZV9yYXcpLE5BLEFkalByZWRpY3RfU2NvcmVfcmF3KSwNCiAgICBXQVJfcmFuayA9IG9yZGVyKG9yZGVyKHJhbmsoV0FSLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLA0KICAgIEFkalByZWRpY3RfU2NvcmVfUmFuayA9IG9yZGVyKG9yZGVyKHJhbmsoQWRqUHJlZGljdF9TY29yZSx0aWVzLm1ldGhvZCA9ICdhdmVyYWdlJyksZGVjcmVhc2luZyA9IFRSVUUpKS1zdW0oaXMubmEoQWRqUHJlZGljdF9TY29yZSkpLA0KICAgICAgICBSYW5rc19BYm92ZV9BRFAgPSBBRFAgLSBBZGpQcmVkaWN0X1Njb3JlX1JhbmsNCiAgKSAlPiUgICANCiAgc2VsZWN0IChOYW1lLFRlYW0sUG9zaXRpb24sQURQLFdBUiwgV0FSX3JhbmssQWRqUHJlZGljdF9TY29yZSAsQWRqUHJlZGljdF9TY29yZV9SYW5rLFJhbmtzX0Fib3ZlX0FEUCwgUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KDQpmdF9kdCA8LSBGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1NbMTpucm93KEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyksIDE6bmNvbChGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MpXSAlPiUgDQojJT4lIA0KI2ZpbHRlcihBZGpQcmVkaWN0X1Njb3JlX1Jhbms+MCkNCiBhcnJhbmdlKChBRFApKQ0KDQpmdF9kdCRBRFAgPC0gY29sb3JfdGlsZSgid2hpdGUiLCAicmVkIikoZnRfZHQkQURQKQ0KDQpmdF9kdCRXQVIgPC0gY29sb3JfYmFyKCJsaWdodGJsdWUiKShmdF9kdCRXQVIpDQoNCg0KZnRfZHQkQWRqUHJlZGljdF9TY29yZTwtICByb3VuZCgoZnRfZHQkQWRqUHJlZGljdF9TY29yZSksMikNCg0KZnRfZHQkTW9kZWxfU2NvcmU8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmUpDQoNCmZ0X2R0JFdBUl9SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkV0FSX3JhbmspDQoNCmZ0X2R0JFBvc2l0aW9uX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRBZGpQcmVkaWN0X1Njb3JlX1JhbmspIA0KDQpmdF9kdCRSYW5rc19BYm92ZV9BRFAgPC0gDQogIGlmZWxzZSgNCiAgZnRfZHQkUmFua3NfQWJvdmVfQURQIDwgMCwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAicmVkIiwgaXRhbGljID0gVCksDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gImdyZWVuIiwgaXRhbGljID0gVCkNCikNCg0KZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSA8LSByb3VuZChmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5LCAyKQ0KDQpmdF9kdCRQb3NfU2NhcmNpdHkgPC0gY29sb3JfdGlsZSgicmVkIiwid2hpdGUiKShmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQojTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkNCg0KZnRfZHQyIDwtIGZ0X2R0W2MoIk5hbWUiLCJUZWFtIiwiUG9zaXRpb24iLCJBRFAiLCAiV0FSIiwgIk1vZGVsX1Njb3JlIiwgIldBUl9SYW5rIiwiUG9zaXRpb25fUmFuayIsIlBvc19TY2FyY2l0eSIpXQ0KDQoNCnRhYmxlX2V4cG9ydCA9IA0Ka2JsKGZ0X2R0MiwgZXNjYXBlID0gRikgJT4lIA0KIGthYmxlX21hdGVyaWFsKGMoInN0cmlwZWQiLCAiaG92ZXIiLCJjb25kZW5zZWQiLCJyZXNwb25zaXZlIiksZnVsbF93aWR0aCA9IEYsZml4ZWRfdGhlYWQgPSBUKSAlPiUgICBjb2x1bW5fc3BlYyg2LCB3aWR0aCA9ICIzY20iKSMgJT4lDQogIyBhZGRfaGVhZGVyX2Fib3ZlKGMoIiAiLCAiU2NvcmVzIiA9IDUsICJSYW5rcyIgPSAzLCIgIikpDQoNCnRhYmxlX2V4cG9ydCAgDQoNCmBgYA0KDQojIyMgQ0YgICANCldBUiBSYW5rcyBhcmUgZm9yIHRoZSBwb3NpdGlvbiwgYW5kIFBvc19SYW5rIGlzIGJhc2VkIG9uIE1vZGVsIFNjb3JlICAgICAgDQpgYGB7cn0NCg0KDQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MgPQ0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9Ub3RhbCAlPiUNCmZpbHRlcihQb3NpdGlvbkNGID09IDEpICU+JSANCiAgbXV0YXRlKA0KICAgIG1heF9wcmVkc2NvcmU9IG1heChBZGpQcmVkaWN0X1Njb3JlX3JhdyxuYS5ybSA9IFQpLA0KICAgIEFkalByZWRpY3RfU2NvcmUgPSBpZmVsc2UgKGlzLm5hKEFkalByZWRpY3RfU2NvcmVfcmF3KSxOQSxBZGpQcmVkaWN0X1Njb3JlX3JhdyksDQogICAgV0FSX3JhbmsgPSBvcmRlcihvcmRlcihyYW5rKFdBUix0aWVzLm1ldGhvZCA9ICdhdmVyYWdlJyksZGVjcmVhc2luZyA9IFRSVUUpKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlX1JhbmsgPSBvcmRlcihvcmRlcihyYW5rKEFkalByZWRpY3RfU2NvcmUsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSktc3VtKGlzLm5hKEFkalByZWRpY3RfU2NvcmUpKSwNCiAgICAgICAgUmFua3NfQWJvdmVfQURQID0gQURQIC0gQWRqUHJlZGljdF9TY29yZV9SYW5rDQogICkgJT4lICAgDQogIHNlbGVjdCAoTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkpDQoNCg0KZnRfZHQgPC0gRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TWzE6bnJvdyhGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MpLCAxOm5jb2woRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKV0gJT4lIA0KIyU+JSANCiNmaWx0ZXIoQWRqUHJlZGljdF9TY29yZV9SYW5rPjApDQogYXJyYW5nZSgoQURQKSkNCg0KZnRfZHQkQURQIDwtIGNvbG9yX3RpbGUoIndoaXRlIiwgInJlZCIpKGZ0X2R0JEFEUCkNCg0KZnRfZHQkV0FSIDwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkV0FSKQ0KDQoNCmZ0X2R0JEFkalByZWRpY3RfU2NvcmU8LSAgcm91bmQoKGZ0X2R0JEFkalByZWRpY3RfU2NvcmUpLDIpDQoNCmZ0X2R0JE1vZGVsX1Njb3JlPC0gY29sb3JfYmFyKCJsaWdodGJsdWUiKShmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKQ0KDQpmdF9kdCRXQVJfUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JFdBUl9yYW5rKQ0KDQpmdF9kdCRQb3NpdGlvbl9SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZV9SYW5rKSANCg0KZnRfZHQkUmFua3NfQWJvdmVfQURQIDwtIA0KICBpZmVsc2UoDQogIGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8IDAsDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gInJlZCIsIGl0YWxpYyA9IFQpLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJncmVlbiIsIGl0YWxpYyA9IFQpDQopDQoNCmZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkgPC0gcm91bmQoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSwgMikNCg0KZnRfZHQkUG9zX1NjYXJjaXR5IDwtIGNvbG9yX3RpbGUoInJlZCIsIndoaXRlIikoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KI05hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5DQoNCmZ0X2R0MiA8LSBmdF9kdFtjKCJOYW1lIiwiVGVhbSIsIlBvc2l0aW9uIiwiQURQIiwgIldBUiIsICJNb2RlbF9TY29yZSIsICJXQVJfUmFuayIsIlBvc2l0aW9uX1JhbmsiLCJQb3NfU2NhcmNpdHkiKV0NCg0KDQp0YWJsZV9leHBvcnQgPSANCmtibChmdF9kdDIsIGVzY2FwZSA9IEYpICU+JSANCiBrYWJsZV9tYXRlcmlhbChjKCJzdHJpcGVkIiwgImhvdmVyIiwiY29uZGVuc2VkIiwicmVzcG9uc2l2ZSIpLGZ1bGxfd2lkdGggPSBGLGZpeGVkX3RoZWFkID0gVCkgJT4lICAgY29sdW1uX3NwZWMoNiwgd2lkdGggPSAiM2NtIikjICU+JQ0KICMgYWRkX2hlYWRlcl9hYm92ZShjKCIgIiwgIlNjb3JlcyIgPSA1LCAiUmFua3MiID0gMywiICIpKQ0KDQp0YWJsZV9leHBvcnQgIA0KYGBgDQoNCiMjIyBPRiAgICANCldBUiBSYW5rcyBhcmUgZm9yIHRoZSBwb3NpdGlvbiwgYW5kIFBvc19SYW5rIGlzIGJhc2VkIG9uIE1vZGVsIFNjb3JlICAgICANCmBgYHtyfQ0KDQoNCkZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyA9DQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX1RvdGFsICU+JQ0KZmlsdGVyKFBvc2l0aW9uT0YgPT0gMSkgJT4lIA0KICBtdXRhdGUoDQogICAgbWF4X3ByZWRzY29yZT0gbWF4KEFkalByZWRpY3RfU2NvcmVfcmF3LG5hLnJtID0gVCksDQogICAgQWRqUHJlZGljdF9TY29yZSA9IGlmZWxzZSAoaXMubmEoQWRqUHJlZGljdF9TY29yZV9yYXcpLE5BLEFkalByZWRpY3RfU2NvcmVfcmF3KSwNCiAgICBXQVJfcmFuayA9IG9yZGVyKG9yZGVyKHJhbmsoV0FSLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLA0KICAgIEFkalByZWRpY3RfU2NvcmVfUmFuayA9IG9yZGVyKG9yZGVyKHJhbmsoQWRqUHJlZGljdF9TY29yZSx0aWVzLm1ldGhvZCA9ICdhdmVyYWdlJyksZGVjcmVhc2luZyA9IFRSVUUpKS1zdW0oaXMubmEoQWRqUHJlZGljdF9TY29yZSkpLA0KICAgICAgICBSYW5rc19BYm92ZV9BRFAgPSBBRFAgLSBBZGpQcmVkaWN0X1Njb3JlX1JhbmsNCiAgKSAlPiUgICANCiAgc2VsZWN0IChOYW1lLFRlYW0sUG9zaXRpb24sQURQLFdBUiwgV0FSX3JhbmssQWRqUHJlZGljdF9TY29yZSAsQWRqUHJlZGljdF9TY29yZV9SYW5rLFJhbmtzX0Fib3ZlX0FEUCwgUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KDQpmdF9kdCA8LSBGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1NbMTpucm93KEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyksIDE6bmNvbChGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MpXSAlPiUgDQojJT4lIA0KI2ZpbHRlcihBZGpQcmVkaWN0X1Njb3JlX1Jhbms+MCkNCiBhcnJhbmdlKChBRFApKQ0KDQpmdF9kdCRBRFAgPC0gY29sb3JfdGlsZSgid2hpdGUiLCAicmVkIikoZnRfZHQkQURQKQ0KDQpmdF9kdCRXQVIgPC0gY29sb3JfYmFyKCJsaWdodGJsdWUiKShmdF9kdCRXQVIpDQoNCg0KZnRfZHQkQWRqUHJlZGljdF9TY29yZTwtICByb3VuZCgoZnRfZHQkQWRqUHJlZGljdF9TY29yZSksMikNCg0KZnRfZHQkTW9kZWxfU2NvcmU8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmUpDQoNCmZ0X2R0JFdBUl9SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkV0FSX3JhbmspDQoNCmZ0X2R0JFBvc2l0aW9uX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRBZGpQcmVkaWN0X1Njb3JlX1JhbmspIA0KDQpmdF9kdCRSYW5rc19BYm92ZV9BRFAgPC0gDQogIGlmZWxzZSgNCiAgZnRfZHQkUmFua3NfQWJvdmVfQURQIDwgMCwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAicmVkIiwgaXRhbGljID0gVCksDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gImdyZWVuIiwgaXRhbGljID0gVCkNCikNCg0KZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSA8LSByb3VuZChmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5LCAyKQ0KDQpmdF9kdCRQb3NfU2NhcmNpdHkgPC0gY29sb3JfdGlsZSgicmVkIiwid2hpdGUiKShmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQojTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkNCg0KZnRfZHQyIDwtIGZ0X2R0W2MoIk5hbWUiLCJUZWFtIiwiUG9zaXRpb24iLCJBRFAiLCAiV0FSIiwgIk1vZGVsX1Njb3JlIiwgIldBUl9SYW5rIiwiUG9zaXRpb25fUmFuayIsIlBvc19TY2FyY2l0eSIpXQ0KDQoNCnRhYmxlX2V4cG9ydCA9IA0Ka2JsKGZ0X2R0MiwgZXNjYXBlID0gRikgJT4lIA0KIGthYmxlX21hdGVyaWFsKGMoInN0cmlwZWQiLCAiaG92ZXIiLCJjb25kZW5zZWQiLCJyZXNwb25zaXZlIiksZnVsbF93aWR0aCA9IEYsZml4ZWRfdGhlYWQgPSBUKSAlPiUgICBjb2x1bW5fc3BlYyg2LCB3aWR0aCA9ICIzY20iKSMgJT4lDQogIyBhZGRfaGVhZGVyX2Fib3ZlKGMoIiAiLCAiU2NvcmVzIiA9IDUsICJSYW5rcyIgPSAzLCIgIikpDQoNCnRhYmxlX2V4cG9ydCAgDQpgYGANCg0KIyMjIEMgIA0KV0FSIFJhbmtzIGFyZSBmb3IgdGhlIHBvc2l0aW9uLCBhbmQgUG9zX1JhbmsgaXMgYmFzZWQgb24gTW9kZWwgU2NvcmUgICAgICANCmBgYHtyfQ0KDQpGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MgPQ0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9Ub3RhbCAlPiUNCmZpbHRlcihQb3NpdGlvbkMgPT0gMSkgJT4lIA0KICBtdXRhdGUoDQogICAgbWF4X3ByZWRzY29yZT0gbWF4KEFkalByZWRpY3RfU2NvcmVfcmF3LG5hLnJtID0gVCksDQogICAgQWRqUHJlZGljdF9TY29yZSA9IGlmZWxzZSAoaXMubmEoQWRqUHJlZGljdF9TY29yZV9yYXcpLE5BLEFkalByZWRpY3RfU2NvcmVfcmF3KSwNCiAgICBXQVJfcmFuayA9IG9yZGVyKG9yZGVyKHJhbmsoV0FSLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLA0KICAgIEFkalByZWRpY3RfU2NvcmVfUmFuayA9IG9yZGVyKG9yZGVyKHJhbmsoQWRqUHJlZGljdF9TY29yZSx0aWVzLm1ldGhvZCA9ICdhdmVyYWdlJyksZGVjcmVhc2luZyA9IFRSVUUpKS1zdW0oaXMubmEoQWRqUHJlZGljdF9TY29yZSkpLA0KICAgICAgICBSYW5rc19BYm92ZV9BRFAgPSBBRFAgLSBBZGpQcmVkaWN0X1Njb3JlX1JhbmsNCiAgKSAlPiUgICANCiAgc2VsZWN0IChOYW1lLFRlYW0sUG9zaXRpb24sQURQLFdBUiwgV0FSX3JhbmssQWRqUHJlZGljdF9TY29yZSAsQWRqUHJlZGljdF9TY29yZV9SYW5rLFJhbmtzX0Fib3ZlX0FEUCwgUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KDQpmdF9kdCA8LSBGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1NbMTpucm93KEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyksIDE6bmNvbChGYW5HcmFwaF9Qb3NpdGlvbnNfQmF0dGVyX0FsbF9QT1MpXSAlPiUgDQojJT4lIA0KI2ZpbHRlcihBZGpQcmVkaWN0X1Njb3JlX1Jhbms+MCkNCiBhcnJhbmdlKChBRFApKQ0KDQpmdF9kdCRBRFAgPC0gY29sb3JfdGlsZSgid2hpdGUiLCAicmVkIikoZnRfZHQkQURQKQ0KDQpmdF9kdCRXQVIgPC0gY29sb3JfYmFyKCJsaWdodGJsdWUiKShmdF9kdCRXQVIpDQoNCg0KZnRfZHQkQWRqUHJlZGljdF9TY29yZTwtICByb3VuZCgoZnRfZHQkQWRqUHJlZGljdF9TY29yZSksMikNCg0KZnRfZHQkTW9kZWxfU2NvcmU8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmUpDQoNCmZ0X2R0JFdBUl9SYW5rIDwtIGNvbG9yX3RpbGUoImdyZWVuIiwib3JhbmdlIikoZnRfZHQkV0FSX3JhbmspDQoNCmZ0X2R0JFBvc2l0aW9uX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRBZGpQcmVkaWN0X1Njb3JlX1JhbmspIA0KDQpmdF9kdCRSYW5rc19BYm92ZV9BRFAgPC0gDQogIGlmZWxzZSgNCiAgZnRfZHQkUmFua3NfQWJvdmVfQURQIDwgMCwNCiAgY2VsbF9zcGVjKHJvdW5kKGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCwyKSwgY29sb3IgPSAicmVkIiwgaXRhbGljID0gVCksDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gImdyZWVuIiwgaXRhbGljID0gVCkNCikNCg0KZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSA8LSByb3VuZChmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5LCAyKQ0KDQpmdF9kdCRQb3NfU2NhcmNpdHkgPC0gY29sb3JfdGlsZSgicmVkIiwid2hpdGUiKShmdF9kdCRQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQojTmFtZSxUZWFtLFBvc2l0aW9uLEFEUCxXQVIsIFdBUl9yYW5rLEFkalByZWRpY3RfU2NvcmUgLEFkalByZWRpY3RfU2NvcmVfUmFuayxSYW5rc19BYm92ZV9BRFAsIFBvc2l0aW9uYWxfU2NhcmNpdHkNCg0KZnRfZHQyIDwtIGZ0X2R0W2MoIk5hbWUiLCJUZWFtIiwiUG9zaXRpb24iLCJBRFAiLCAiV0FSIiwgIk1vZGVsX1Njb3JlIiwgIldBUl9SYW5rIiwiUG9zaXRpb25fUmFuayIsIlBvc19TY2FyY2l0eSIpXQ0KDQoNCnRhYmxlX2V4cG9ydCA9IA0Ka2JsKGZ0X2R0MiwgZXNjYXBlID0gRikgJT4lIA0KIGthYmxlX21hdGVyaWFsKGMoInN0cmlwZWQiLCAiaG92ZXIiLCJjb25kZW5zZWQiLCJyZXNwb25zaXZlIiksZnVsbF93aWR0aCA9IEYsZml4ZWRfdGhlYWQgPSBUKSAlPiUgICBjb2x1bW5fc3BlYyg2LCB3aWR0aCA9ICIzY20iKSMgJT4lDQogIyBhZGRfaGVhZGVyX2Fib3ZlKGMoIiAiLCAiU2NvcmVzIiA9IDUsICJSYW5rcyIgPSAzLCIgIikpDQoNCnRhYmxlX2V4cG9ydCAgDQpgYGANCg0KIyMjIERIICANCldBUiBSYW5rcyBhcmUgZm9yIHRoZSBwb3NpdGlvbiwgYW5kIFBvc19SYW5rIGlzIGJhc2VkIG9uIE1vZGVsIFNjb3JlICAgICAgDQpgYGB7cn0NCg0KRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TID0NCkZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfVG90YWwgJT4lDQpmaWx0ZXIoUG9zaXRpb25ESCA9PSAxKSAlPiUgDQogIG11dGF0ZSgNCiAgICBtYXhfcHJlZHNjb3JlPSBtYXgoQWRqUHJlZGljdF9TY29yZV9yYXcsbmEucm0gPSBUKSwNCiAgICBBZGpQcmVkaWN0X1Njb3JlID0gaWZlbHNlIChpcy5uYShBZGpQcmVkaWN0X1Njb3JlX3JhdyksTkEsQWRqUHJlZGljdF9TY29yZV9yYXcpLA0KICAgIFdBUl9yYW5rID0gb3JkZXIob3JkZXIocmFuayhXQVIsdGllcy5tZXRob2QgPSAnYXZlcmFnZScpLGRlY3JlYXNpbmcgPSBUUlVFKSksDQogICAgQWRqUHJlZGljdF9TY29yZV9SYW5rID0gb3JkZXIob3JkZXIocmFuayhBZGpQcmVkaWN0X1Njb3JlLHRpZXMubWV0aG9kID0gJ2F2ZXJhZ2UnKSxkZWNyZWFzaW5nID0gVFJVRSkpLXN1bShpcy5uYShBZGpQcmVkaWN0X1Njb3JlKSksDQogICAgICAgIFJhbmtzX0Fib3ZlX0FEUCA9IEFEUCAtIEFkalByZWRpY3RfU2NvcmVfUmFuaw0KICApICU+JSAgIA0KICBzZWxlY3QgKE5hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5KQ0KDQoNCmZ0X2R0IDwtIEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPU1sxOm5yb3coRmFuR3JhcGhfUG9zaXRpb25zX0JhdHRlcl9BbGxfUE9TKSwgMTpuY29sKEZhbkdyYXBoX1Bvc2l0aW9uc19CYXR0ZXJfQWxsX1BPUyldICU+JSANCiMlPiUgDQojZmlsdGVyKEFkalByZWRpY3RfU2NvcmVfUmFuaz4wKQ0KIGFycmFuZ2UoKEFEUCkpDQoNCmZ0X2R0JEFEUCA8LSBjb2xvcl90aWxlKCJ3aGl0ZSIsICJyZWQiKShmdF9kdCRBRFApDQoNCmZ0X2R0JFdBUiA8LSBjb2xvcl9iYXIoImxpZ2h0Ymx1ZSIpKGZ0X2R0JFdBUikNCg0KDQpmdF9kdCRBZGpQcmVkaWN0X1Njb3JlPC0gIHJvdW5kKChmdF9kdCRBZGpQcmVkaWN0X1Njb3JlKSwyKQ0KDQpmdF9kdCRNb2RlbF9TY29yZTwtIGNvbG9yX2JhcigibGlnaHRibHVlIikoZnRfZHQkQWRqUHJlZGljdF9TY29yZSkNCg0KZnRfZHQkV0FSX1JhbmsgPC0gY29sb3JfdGlsZSgiZ3JlZW4iLCJvcmFuZ2UiKShmdF9kdCRXQVJfcmFuaykNCg0KZnRfZHQkUG9zaXRpb25fUmFuayA8LSBjb2xvcl90aWxlKCJncmVlbiIsIm9yYW5nZSIpKGZ0X2R0JEFkalByZWRpY3RfU2NvcmVfUmFuaykgDQoNCg0KZnRfZHQkUmFua3NfQWJvdmVfQURQIDwtIA0KICBpZmVsc2UoDQogIGZ0X2R0JFJhbmtzX0Fib3ZlX0FEUCA8IDAsDQogIGNlbGxfc3BlYyhyb3VuZChmdF9kdCRSYW5rc19BYm92ZV9BRFAsMiksIGNvbG9yID0gInJlZCIsIGl0YWxpYyA9IFQpLA0KICBjZWxsX3NwZWMocm91bmQoZnRfZHQkUmFua3NfQWJvdmVfQURQLDIpLCBjb2xvciA9ICJncmVlbiIsIGl0YWxpYyA9IFQpDQopDQoNCmZ0X2R0JFBvc2l0aW9uYWxfU2NhcmNpdHkgPC0gcm91bmQoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSwgMikNCg0KZnRfZHQkUG9zX1NjYXJjaXR5IDwtIGNvbG9yX3RpbGUoInJlZCIsIndoaXRlIikoZnRfZHQkUG9zaXRpb25hbF9TY2FyY2l0eSkNCg0KI05hbWUsVGVhbSxQb3NpdGlvbixBRFAsV0FSLCBXQVJfcmFuayxBZGpQcmVkaWN0X1Njb3JlICxBZGpQcmVkaWN0X1Njb3JlX1JhbmssUmFua3NfQWJvdmVfQURQLCBQb3NpdGlvbmFsX1NjYXJjaXR5DQoNCmZ0X2R0MiA8LSBmdF9kdFtjKCJOYW1lIiwiVGVhbSIsIlBvc2l0aW9uIiwiQURQIiwgIldBUiIsICJNb2RlbF9TY29yZSIsICJXQVJfUmFuayIsIlBvc2l0aW9uX1JhbmsiLCJQb3NfU2NhcmNpdHkiKV0NCg0KDQp0YWJsZV9leHBvcnQgPSANCmtibChmdF9kdDIsIGVzY2FwZSA9IEYpICU+JSANCiBrYWJsZV9tYXRlcmlhbChjKCJzdHJpcGVkIiwgImhvdmVyIiwiY29uZGVuc2VkIiwicmVzcG9uc2l2ZSIpLGZ1bGxfd2lkdGggPSBGLGZpeGVkX3RoZWFkID0gVCkgJT4lICAgY29sdW1uX3NwZWMoNiwgd2lkdGggPSAiM2NtIikjICU+JQ0KICMgYWRkX2hlYWRlcl9hYm92ZShjKCIgIiwgIlNjb3JlcyIgPSA1LCAiUmFua3MiID0gMywiICIpKQ0KDQp0YWJsZV9leHBvcnQgIA0KYGBgDQoNCg0KDQo=